我正在尝试编写一个非常简单的程序,它将一个数组划分为另一个定义大小较小的数组的数组,但是 push()
方法不起作用。有人可以帮我吗?
function chunk(array, size) {
var newArray = [];
var tempArray = [];
for (let i = 0; i < array.length / size; i++) {
for (let j = size * i, k = 0; j < size * i + size; j++, k++)
tempArray[k] = array[j];
newArray.push(tempArray);
}
return newArray;
}
var data = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(chunk(data, 2));
理想的输出应该是[[1, 2],[3, 4], [5, 6], [7, 8]]
.但是我得到
[[7,8],[7,8],[7,8],[7,8]]
.
最佳答案
您快到了。只需移动 tempArray
在您的第一个 for
中定义-环形。否则,您每次都会推送相同的数组。
工作示例:
function chunk(array, size) {
const newArray = [];
for (let i = 0; i < array.length / size; i++) {
const tempArray = [];
for (let j = size * i, k = 0; j < size * i + size; j++, k++)
tempArray[k] = array[j];
newArray.push(tempArray);
}
return newArray;
};
const data = [1, 2, 3, 4, 5, 6, 7, 8];
console.log(chunk(data, 2)); // [[1, 2],[3, 4], [5, 6], [7, 8]]
关于javascript - push() 方法在 JavaScript 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68631202/