你不知道的 JavaScript 系列中, 5 -类数组

有时候需要将类数组(一组通过数字索引的值)转换成真正的数组,这一般通过数组工具函数来实现,例如,一些 DOM 查询操作会返回 DOM 元素列表,它们并非真正意义的数组,但十分类似。另一个例子是通过 arguments 对象(类数组)将函数的参数当作列表来访问

工具函数 slice(...) 经常用于这类转换

function foo() {
  var arr = Array.prototype.slice.call(arguments);
  arr.push('bam');
  console.log(arr);
}

foo('bar', 'baz'); // ['bar', 'baz', 'bam'];

如上所示,slice() 返回参数列表的一个数组复本。用 ES6 中内置工具函数 Array.from(...) 也能实现同样的功能

var arr = Array.from(arguments);

Array.from() 有一些非常强大的功能,将在下卷 ES6 中介绍