[英]Uncaught TypeError: Cannot read property 'push' of undefined. What should be done?
我收到以下錯誤
“未捕獲的TypeError:無法讀取未定義的屬性'push'”
當我嘗試運行以下代碼時:
function chunkArrayInGroups(arr, size) {
// Break it up.
var arr_final=[];
for(var i=0,j=0;i<arr.length;i++)
{
arr_final[j].push(arr[i]);
if(i===size)
{
j++;
}
}
return arr_final;
}
console.log(chunkArrayInGroups(["a", "b", "c", "d"], 2));
有人可以幫忙嗎?
代替
arr_final[j].push(arr[i]);
做類似的事情
arr_final.push(arr[i]);
您忘記了使用空數組初始化每個塊。 更正了以下代碼:
function chunkArrayInGroups(arr, size) {
// Break it up.
var arr_final=[[]]; // <-- initialize chunk
for(var i=0,j=0;i<arr.length;i++)
{
arr_final[j].push(arr[i]);
if(i===size)
{
arr_final.push([]); // <-- initialize chunk
j++;
}
}
return arr_final;
}
console.log(chunkArrayInGroups(["a", "b", "c", "d"], 2));
我猜你的分塊邏輯中也有一個錯誤,所以你可能真正想要的是:
function chunkArrayInGroups(arr, size) {
// Break it up.
var arr_final=[];
for(var i=0,j=-1;i<arr.length;i++)
{
if (i % size === 0) {
arr_final.push([]);
j++;
}
arr_final[j].push(arr[i]);
}
return arr_final;
}
console.log(chunkArrayInGroups(["a", "b", "c", "d"], 2));
為了將輸入數組拆分為長度arr_final.push([])
多個塊,每次迭代器變量i
達到size
的倍數時,您都需要初始化一個新的空塊arr_final.push([])
-您可以通過取模來檢查操作員:
function chunkArrayInGroups(arr, size) { // Break it up. var arr_final = []; for (var i = 0, j = -1; i < arr.length; ++i) { if (i % size == 0) { arr_final.push([]); j++; } arr_final[j].push(arr[i]); } return arr_final; } console.log(chunkArrayInGroups(["a", "b", "c", "d", "e"], 3));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.