【问题标题】:How to delete object from array if value matched from other object?如果值与其他对象匹配,如何从数组中删除对象?
【发布时间】:2016-03-08 21:38:15
【问题描述】:

当我删除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 arrays angularjs


【解决方案1】:

不幸的是,在 Javascript 中,您没有很多工具可以进行良好的相等性检查,而且 === 还不够,=== 不要强制 javascript 转换两个操作数以执行相等性检查相同类型的对象,我们可以说,如果两个对象具有相同的内存引用,那么你有 true,否则 false。 出于这个原因,您应该确定您的平等标准并将此登录信息包装在一个函数中。我不鼓励使用 Object.prototype.equals 这样的东西,因为在摇摆中,脚本中的所有对象都会有相同的行为

我认为您发布的其余代码很好,但您实现了相等性检查

希望对你有帮助

【讨论】:

  • 我是 javascript 和 angularJs 的新手,因此正在寻找可行的解决方案来检查对象是否相等
  • 即使是这样的简单函数也可能是有用的函数相等 (obj, obj2) { return obj.fullName===obj2.fullName && obj.workerKey===obj2.workerKey }
猜你喜欢
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-13
  • 1970-01-01
相关资源
最近更新 更多