[英]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.