2015-04-03 77 views
0

here is my code in jsfiddle除去空數組在多維數組

var app = angular.module("app", []); 

app.controller("MyCtrl1", MyCtrl1); 

function MyCtrl1($scope) { 

    $scope.block = new Array(); 

    $scope.block[0] = new Array(); 
    $scope.block[0].push("111"); 
    $scope.block[0].push("112"); 
    $scope.block[0].push("113"); 
    $scope.block[0].push("114"); 
    $scope.block[0].push("115"); 

    $scope.block[2].length = 0; 

    $scope.block[3] = new Array(); 
    $scope.block[3].push("111"); 
    $scope.block[3].push("112"); 
    $scope.block[3].push("113"); 
    $scope.block[3].push("114"); 
    $scope.block[3].push("115"); 


    $scope.block.filter(Boolean); 

    console.log($scope.block.length.toString()); 

} 

[[ 「111」, 「112」, 「113」, 「114」, 「115」],[ 「111」, 「112」,」 113" , 「114」, 「115」],[],[ 「111」, 「112」, 「113」, 「114」, 「115」]]

如何刪除空數組 感謝幫助〜

回答

1

如果我正確理解你的問題,這應該做的伎倆:

$scope.block.splice(2,1) 

第一個參數指定的 「塊」 的索引陣列。第二個參數指定從該索引開始刪除的項目數。

+0

偉大的! 這種方法也非常好,非常感謝 – Duke 2015-04-03 15:00:24

+0

@ user3382559只有當您事先知道要移除的項目(並且不會一次移除多個項目)時,這纔會起作用。 – JLRishe 2015-04-03 15:07:46

+0

@JLRishe好〜謝謝你提醒我,我會注意這些 – Duke 2015-04-03 15:33:54

3

Array#filter不會修改它呼籲陣列。它返回一個新的數組。

此外,Boolean([])true這樣就不會在這裏工作。

這樣做:

$scope.block = $scope.block.filter(function (arr) { 
    return arr.length; 
}); 

http://jsfiddle.net/wmLmrqrq/

+0

謝謝您的迅速反應,以解決我的問題,謝謝 – Duke 2015-04-03 14:57:50