簡體   English   中英

如果值與其他對象匹配,如何從數組中刪除對象?

[英]How to delete object from array if value matched from other object?

現在,當我刪除dataItem dataItem具有與selectedOwners相同的屬性時,我已經存在對象值數組,因此,如果dataItem選擇的值匹配,我想從selectedOwners數組中刪除該對象。

如何使用AngularJs或Javascript完成該任務?

ctrl.js

  var selectedOwners = [{"fullName":"Johnson, Rocio","workerKey":3506},{"fullName":"Johnson, John S.","workerKey":571}];

   $scope.deleteOwner = function(dataItem){
              angular.forEach(selectedOwners,function(val,index){
                if(val === dataItem){
                  selectedOwners.splice(index,1);
                }
              })
            }

不幸的是,在Javascript中,您沒有很多工具可以進行良好的相等性檢查,並且===不夠,===請勿強制javascript轉換兩個操作數以便對相同類型的javascript進行相等性檢查對象,我們可以這樣說,如果兩個對象具有相同的內存引用,則為true,否則為false。 因此,您應該確定自己的相等性標准,然后將此登錄名包裝在函數中。 我不鼓勵使用類似Object.prototype.equals類的東西,因為這樣一來,您將對腳本中的所有對象都具有相同的行為

我認為您發布的其余代碼很好,但是您已經實現了相等性檢查

我希望這可以幫到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM