【发布时间】:2017-08-06 14:26:03
【问题描述】:
我想展平一个子数组中的两个数组,用结果替换当前计数器之后的一个,并删除当前计数器子数组。出于某种原因,拼接对我不起作用;我收到错误:arg.splice() 不是函数。 谁能解释一下为什么?
function sym(args) {
var arg = arguments;
for (var i = 0; i < arg.length; i++) {
if (arg[i+1]) {
arg[i+1] = flatten(arg[i], arg[i+1]);
arg.splice(i,1);
}
}
function flatten(arr1, arr2) {
return [arr1, arr2].reduce(
function(a,b){
return a.concat(b);
}, []);
}
}
sym([1, 2, 3], [5, 2, 1, 4]);
【问题讨论】:
-
arguments不是一个数组,它是一个“类似数组”的对象。您需要将其“转换”为数组。var arg = Array.prototype.slice.call(arguments);
标签: javascript arrays multidimensional-array splice