javascript - Array.filter() 删除重复对象

标签 javascript arrays

我想融合 Array.filter() 函数来删除重复的对象 我能够在字符串或整数数组的情况下实现。但是我无法使用对象数组实现与 names

第二种情况相同的效果
const names = ['John', 'Paul', 'George', 'Ringo', 'John'];
let x = names => names.filter((v, i, arr) => arr.indexOf(v) === i);
console.log(x(names)); //[ 'John', 'Paul', 'George', 'Ringo' ]


const names = [
{ name: "John" },
{ name: "Paul" },
{ name: "George" },
{ name: "Ringo" },
{ name: "John" } ];
// returns the same original array

你能帮忙吗?

最佳答案

然后使用 Array#reduce() 和一个 Map 累加器将 Map 的 values() 散布到数组中

const names = [
{ name: "John" },
{ name: "Paul" },
{ name: "George" },
{ name: "Ringo" },
{ name: "John" } ];

const unique = [... names.reduce((a,c)=>(a.set(c.name,c)),new Map).values()]

console.log(unique)

关于javascript - Array.filter() 删除重复对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53226100/

相关文章:

javascript - XML 解析意外行为 LiScroll

javascript - 在文本输入字段中键入内容时,打印内容替换点

JavaScript - 2 个数组之间的匹配

c# - 如何处理 OutOfMemoryException 直到它不再抛出?

python - numpy 数组连接错误 : 0-d arrays can't be concatenated

python - 如何在 Python 2.7.2 中计算一组 GPS 卫星的 DOP 值?

javascript - 将嵌套组件孙子之间的事件发送到根组件

javascript - Sails.js 1.0 破坏了全新安装

javascript - 挑选一个 JSON 对象来创建多个数组

Python 惰性求值 numpy ndarray