2015-09-10 20 views
1

我有一個如下的記錄數組。我想排除零值的記錄。在這種情況下,只排除'pqr'並獲得'abc'和'xyz'作爲輸出。如何在AngularJS中過濾非零值的記錄

$scope.myArray = [{ 
    name: 'abc', 
    value: 2 
    }, { 
    name: 'pqr', 
    value: 0 
    }, { 
    name: 'xyz', 
    value: 104 
    }] 

    $scope.filteredRecords = $filter('filter')($scope.myArray, { 
    'value': '!0' 
    }); 

和輸出filteredRecords包含

[{"name":"abc","value":2}] 

但問題是我不希望排除的 'XYZ' 的紀錄。我只想排除值爲0的記錄。但它看起來像角是比較子字符串而不是完整的值。

如何使用默認的角度濾波得到記錄與非零值 (無需編寫自定義過濾器)

plunker上面的代碼。

回答

3

正如the doc所述,您可以使用一個斷言函數而不是數組:

$scope.filteredRecords = $filter("filter")($scope.myArray, function(value, index, array) { 
    return value.value !== 0; 
}); 
+0

編輯了代碼。使用嚴格的平等運算符 – Vivek

1

我只想用Array.prototype.filter()

$scope.filteredRecords = $scope.myArray.filter(function(item) { 
    return item.value !== 0; 
}); 
0

建議你可以使用JavaScript的filter方法來做到這一點:

$scope.filteredRecords = $scope.myArray.filter(function (item) { 
     return item.value !== 0; 
    }); 

Here是工作小提琴