首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何根据多个唯一值过滤对象数组?

如何根据多个唯一值过滤对象数组?
EN

Stack Overflow用户
提问于 2019-06-18 19:01:10
回答 2查看 462关注 0票数 1

我有一个数据集,看起来是这样的:

代码语言:javascript
复制
const data = [{
    "First Name" : "John"
    "Last Name": "Doe"
    "Cars Sold": 2
  },
  {
    "First Name" : "John"
    "Last Name": "Doe"
    "Cars Sold": 1
  },
  {
    "First Name" : "Jane"
    "Last Name": "Doe"
    "Cars Sold": 3
  }];

我该如何过滤它才能得到对象中所有人的列表呢?也就是说,输出应该是对象中唯一的人(名字和姓氏的组合)的列表。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-18 19:04:00

唯一的人,名字和姓氏之间用空格分隔:

代码语言:javascript
复制
const data = [{"First Name":"John", "Last Name":"Doe", "Cars Sold":2},{"First Name":"John", "Last Name":"Doe", "Cars Sold":1},{"First Name":"Jane", "Last Name":"Doe", "Cars Sold":3}];
const res = [...new Set(data.map(e => e["First Name"] + " " + e["Last Name"]))];
console.log(res);

ES5语法:

代码语言:javascript
复制
var data = [{"First Name":"John", "Last Name":"Doe", "Cars Sold":2},{"First Name":"John", "Last Name":"Doe", "Cars Sold":1},{"First Name":"Jane", "Last Name":"Doe", "Cars Sold":3}];
var res = data.map(function(e) {
  return e["First Name"] + " " + e["Last Name"];
}).filter(function(e, i, a) {
  return a.indexOf(e) == i;
});
console.log(res);

票数 4
EN

Stack Overflow用户

发布于 2019-06-18 19:06:32

代码语言:javascript
复制
const data = [{
    "First Name" : "John",
    "Last Name": "Doe",
    "Cars Sold": 2
  },
  {
    "First Name" : "John",
    "Last Name": "Doe",
    "Cars Sold": 1
  },
  {
    "First Name" : "Jane",
    "Last Name": "Doe",
    "Cars Sold": 3
  }];

const list = data.reduce((acc, cur) => acc.includes(`${cur['First Name']} ${cur['Last Name']}`) ? acc : acc.concat([`${cur['First Name']} ${cur['Last Name']}`]), []);

console.log(list);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56647631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档