【问题标题】:How to splice item from array in javascript如何在javascript中拼接数组中的项目
【发布时间】:2016-07-12 02:14:41
【问题描述】:

如果数组中存在目标对象属性,我正在寻找一种从数组中删除所有元素的方法。

var msg={name:'tar', type:'SR'}; //want to delete all object with type=SR

  var items= [{name:'oh', type:'SR'},{name:'em', type:'PR'},
  {name:'ge', type:'MR'},{name:'ohoo', type:'SR'}];

    items.splice( items.indexOf(msg.type), 1 );

这样,只有一个对象被删除。有人可以建议一种更好的方法,即不使用循环我可以从数组中删除所有目标对象

【问题讨论】:

  • 如果至少一个对象包含具有特定值的特定属性,您是要从数组中删除所有元素,还是要仅删除具有特定值的特定属性的对象?
  • 您的代码正在删除除最后一个以外的所有对象,items.indexOf(msg.type) return -1 as indexOf 查找值"SR"
  • 我正在尝试删除所有具有 type:'SR' 的对象。
  • 那你应该澄清你问题的第一句话。
  • 对不起,我已经在代码注释中提到了这一点。

标签: javascript jquery arrays performance javascript-objects


【解决方案1】:

你可以试试下面的方法

items = items.filter(function(item){
     return item.type !== msg.type;
});

【讨论】:

    【解决方案2】:

    有点功能,就完成了:

    var result = items.filter(function(item){
        return (item.type == msg.type) ? false : true;
    });
    

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 1970-01-01
      • 2019-10-05
      • 2023-01-04
      • 2015-01-06
      • 2017-06-10
      • 1970-01-01
      • 2020-12-25
      • 2015-05-18
      相关资源
      最近更新 更多