2016-08-24 8 views
0

アレイ内の最後の項目を削除するにはどうすればいいですか?この場合、配列の内側で配列の最後にnullを取り除きたいと思います。ここに私のコードアレイ内のアレイの最後の項目を削除するには

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

を使用します)。ループで追加される未定義の値を削除するのではなく、まったく挿入されないようにする方が簡単です。

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

配列内の最後の項目を削除し、元の配列を変更するlength - 1

0

にちょうど配列lengthです。私はあなたの究極の目標は、最後のサブ配列がsizeに等しいことはないだろうという場合には(指定したサイズ以下の配列の各数に元の配列を分割することであると考えてい

arr.pop(); 
関連する問題