类数组对象是指拥有一个length属性和若干属性的对象。
Arguments对象就是一个类数组对象。
另外: 常见的类数组对象还包括: 使用document.getElementsByTagName/ClassName()等方法获得的HTMLCollection;使用querySelector获得的nodeList
我们将类数组转换成数组,有以下方法:
1.利用Array.prototype.slice.call或者Array.prototype.concat.apply
function sum(a, b){
var args = Array.prototype.slice.call(arguments);
args.push(3);
console.log(args.reduce((prev, next) => prev + next ,0));
}
sum(1, 2);
function sum(a, b){
var args = Array.prototype.concat.apply([],arguments);
args.push(3);
console.log(args.reduce((prev, next) => prev + next ,0));
}
sum(1, 2);
2.利用Array.from()
function sum(a, b){
var args = Array.from(arguments);
args.push(3);
console.log(args.reduce((prev, next) => prev + next ,0));
}
sum(1, 2);
3. 利用ES6展开运算符
function sum(a, b){
var args = [...arguments];
args.push(3);
console.log(args.reduce((prev, next) => prev + next ,0));
}
sum(1, 2);