2016-08-24 102 views
0

如何刪除數組內的最後一個數組。在這種情況下,我想刪除數組內部的空值。這裏是我的代碼如何刪除數組中最後一個數組的內容

function chunkArrayInGroups(arr, size) { 
    // Break it up. 
    var arrWithSubArr = []; 

    for(var i = 0; i < arr.length/size; i++){ 
    arrWithSubArr.push([]); 
    } 
    var index = 0; 
    var whichSubArr = 0; 
    for(whichSubArr = 0; whichSubArr < arr.length/size; whichSubArr++){ 
    for(i = 0; i < size; index++){ 
     arrWithSubArr[whichSubArr].push(arr[index]); 
     i++; 
    } 
    } 

    return arrWithSubArr; 
} 

chunkArrayInGroups([0, 1, 2, 3, 4, 5], 4); 
+0

我運行了你的代碼,得到'[[0,1,2,3],[4,5,undefined,undefined]]'。什麼是預期的輸出? –

回答

1

我相信你的最終目標是將原始陣列分成若干陣列大於指定大小的每個等於或更低(在最後一個子陣列將不等於size的情況下)。而不是去除循環中添加的未定義值,否則將更容易阻止它們被插入。

function chunkArrayInGroups(arr, size) { 
    // Break it up. 
    var arrWithSubArr = []; 

    var whichSubArr = 0; 

    // Using Math.ceil returns the smallest integer greater than or equal to the number 
    // In this case your minimum number of sub arrays needed to contain all the items of the original array 
    var numOfSubArrs = Math.ceil(arr.length/size); 

    // create the empty sub arrays 
    for(var i = 0; i < numOfSubArrs; i++){ 
    arrWithSubArr.push([]); 
    } 

    for (var i =0; i < arr.length; i++) { 
     arrWithSubArr[whichSubArr].push(arr[i]); 
     // starting with the inital sub array at position 0 
     // increment to the next sub array once the current one is equal to the specified size 
     if (arrWithSubArr[whichSubArr].length == size){ 
      whichSubArr++; 
     } 
    } 

    return arrWithSubArr; 
} 

chunkArrayInGroups([0, 1, 2, 3, 4, 5], 4); 
0

只是陣列lengthlength - 1

0

要刪除的最後一個項目在數組中,並改變原來的數組。我會用

arr.pop(); 
相關問題