arguments
对象是一个奇怪的点——它在大多数情况下表现得就像一个数组,但它实际上并不是一个真正的数组对象。由于它是完全不同的东西,因此它没有来自Array.prototype
的有用函数,例如forEach
、sort
、filter
和map
。
使用简单的for循环可以轻松地从arguments
对象构造一个新的数组。例如,这个函数对其参数进行排序:
function sortArgs() {
var args = [];
for (var i = 0; i < arguments.length; i++)
args[i] = arguments[i];
return args.sort();
}
然而,仅仅为了使用非常有用的JavaScript数组函数而进行这种操作是相当可悲的。是否有一种内置的方法可以使用标准库来实现?