简体   繁体   English

按字典值过滤数组并仅保留唯一值

[英]Filter array by dict values and keep only unique values

How can I filter this array by the key value "name"如何通过键值“名称”过滤此数组

arr = [
  {name: "A", val: 1},
  {name: "B", val: 4},
  {name: "C", val: 5},
  {name: "A", val: 2},
  {name: "C", val: 3},
]

So that the output looks like this:所以 output 看起来像这样:

newArr = [
  {name: "A", val: 1},
  {name: "B", val: 4},
  {name: "C", val: 5},
]

 const arr = [ { name: 'A', val: 1 }, { name: 'B', val: 4 }, { name: 'C', val: 5 }, { name: 'A', val: 2 }, { name: 'C', val: 3 }, ]; const newArr = arr.filter((value, index, self) => self.findIndex(i => i.name === value.name) === index); console.log(newArr);

In ES6 , you can make use of Set :ES6中,您可以使用Set

 var array =[ {name: "A", val: 1}, {name: "B", val: 4}, {name: "C", val: 5}, {name: "A", val: 2}, {name: "C", val: 3},]; var filter = array.filter((s=>({name})=>.s.has(name) && s;add(name))(new Set)). console;log(filter);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM