我正在尝试解决这个问题:编写一个函数,将数组(第一个参数)分成大小长度(第二个参数)的组,并将它们作为多维数组返回。例如:
chunk(['a', 'b', 'c', 'd'], 2)
应该返回
[['a'. 'b'], ['c', 'd']]
我的代码如下:
function chunk(arr, size) {
var newArr = [[]];
for(i = 0; i < arr.length; i++) {
for(j = 0; j < size; j++) {
newArr[i].push(arr[i + j]);
}
}
return newArr;
}
它给出一个错误:无法读取未定义的属性“push”。为什么会发生这种情况以及如何解决这个问题?
最佳答案
您可以使用嵌套循环来做到这一点,但为什么不采用更简单的方法并使用array.slice()
?
function chunk( input, size ) {
var output = [];
for( i = 0; i < input.length; i += size ) {
output.push( input.slice( i, i + size ) );
}
return output;
}
关于javascript - 无法读取未定义多维数组的属性 'push',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31511627/