Alo*_*ñón 5 javascript array-push
我正在尝试编写一个非常简单的程序,该程序将一个数组划分为另一个定义大小的较小数组的数组,但是该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));
Run Code Online (Sandbox Code Playgroud)
理想的输出应该是[[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]]Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |