首页 > 解决方案 > 将值从多个对象推送到数组

问题描述

我想知道将值从多个对象推送到数组的最佳方法,同时保持它们的唯一性。

例如:

let emails = [];

owners.map(data => {
    emails.push(data.mail)
})

members.map(data => {
    emails.push(data.mail)
})

console.log(emails) 

emails填充来自每个对象的电子邮件,但它们是重复的。我知道如何过滤数组中的重复项,但我想查看上述代码的更多选项。谢谢!

标签: javascript

解决方案


使用数组扩展将两个数组组合为一个数组,并将该数组映射到一个电子邮件数组。将数组转换为Set以删除重复项,然后传播回数组:

const members = [
  { mail: 'a@b.com' },
  { mail: 'c@d.net' },
];

const owners = [
  { mail: 'a@b.com' },
  { mail: 'e@f.org' },
];

const emails = [...new Set([...members, ...owners].map(data => data.mail))];

console.log(emails)


推荐阅读