2017-10-09 27 views
0

我有一個json數組對象$scope.products= [];和ng-click函數調用 addRow。angularjs:如何檢查dublicate行befor推送新行到json對象

我想在將新行推向數組之前執行檢查,新行已經存在於數組中,或者在調用addRow函數時不存在。

如果它已經存在,則新行不會推入數組。

$scope.addRow = function(){ 
$scope.products.push({'pro_name':$scope.pro_name,'pro_id':$scope.pro_id, 'batch_no': $scope.input_batch_no }); 
} 
+0

因爲它是讓你的第一個問題,你可能讀來引導上提出好的問題(https://stackoverflow.com/help/how-to-ask )。 –

回答

0

只是檢查,如果它在數組中已經存在:

$scope.addRow = function(){ 
    var exists = false; 
    $scope.products.forEach(product => { 
     if (product.pro_name === $scope.pro_name && product.pro_id === $scope.pro_id && product.batch_no === $scope.batch_no) { 
      exists = true; 
     } 
    }) 
    if (!exists) { 
     $scope.products.push({ 
      'pro_name':$scope.pro_name, 
      'pro_id':$scope.pro_id, 
      'batch_no': $scope.input_batch_no 
     }); 
    } 
} 
1

既然你有一個唯一的標識符,您可以檢查添加的行的列表中是否存在與該標識符這樣的元素。

$scope.addRow = function(product) { 

    if($scope.selectedProducts.find(p => p.pro_id === product.pro_id)) { 
     return; 
    }; 

    $scope.selectedProducts.push(product); 

} 

這裏的工作piece of code