如何删除数组中最后一个数组的内容

问题描述:

如何删除数组内的最后一个数组。在这种情况下,我想删除数组内部的空值。这里是我的代码如何删除数组中最后一个数组的内容

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]]'。什么是预期的输出? –

我相信你的最终目标是将原始阵列分成若干阵列大于指定大小的每个等于或更低(在最后一个子阵列将不等于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); 

只是阵列lengthlength - 1

要删除的最后一个项目在数组中,并改变原来的数组。我会用

arr.pop();