删除数组中的元素

用户8856651

我正在开发一个有角度的应用程序。我有一个数组“ * identifyplicate”,就像这样。

[
  {
   Name: "Jack",
   Id: "1"
  },
  {
    Name: "Rose",
    Id: "2"
  },
  {
    Name: "Jack",
    Id: "4"
  },
  {
    Name: "Jack",
    Id: "4"
  }
]

如果我使用相同的名称和ID,则要同时删除两者。像上面的例子一样,最后两个索引中的name和id是相同的“ jack”,但是如果name是name和id不同,我不想删除任何数据。像上面的示例一样,我要在数组中保留ID为“ 1”的Jack,但要删除ID为“ 4”的最后两个“ Jack”。我怎样才能做到这一点?

pc_coder

您可以使用多种方法来执行此操作,例如filter,reduce,map等。下面创建两个示例。

第一个是简单的forEach方法。在循环过滤器中,如果存在相同的Name元素,则推送到新数组

在第二个reduce方法中,再次过滤元素(如果存在相同的Name元素),然后推送到新数组。

var arr=[{Name: "Jack",Id: "1"},{Name: "Rose",Id: "2"},{Name: "Jack", Id: "4"},{Name: "Jack", Id: "4"}];

//simple foreach method
var result=[];
arr.forEach(el=>{
  if(result.filter(x=>x.Name==el.Name).length==0){result.push(el);}
});
console.log(result);


//reduce method
var result2=arr.reduce((r, { Name, Id }) => {
    var temp = r.find(o => Name === o.Name);
    if (!temp) { r.push(temp = { Name, Id });}
    return r;
}, []);
console.log(result2);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章