可以使用reduce和filter方法进行处理。首先使用reduce方法将原始数组转化为一个具有唯一键的对象,并将各个对象按照可以区分不同对象的属性的值进行分组。然后使用filter方法,以该属性值作为键来选择分组对象的第一个对象。最后转化为数组。
示例代码如下:
function deduplicateArray(arr, prop) { return Object.values(arr.reduce((acc, curr) => { if (!acc[curr[prop]]) { acc[curr[prop]] = curr; } return acc; }, {})).filter(obj => obj !== undefined); }
// 用例 const arr = [ { id: 1, name: 'A' }, { id: 2, name: 'A' }, { id: 3, name: 'B' }, { id: 4, name: 'B' }, { id: 5, name: 'C' } ];
deduplicateArray(arr, 'name'); // 输出 [{id: 1, name: 'A'}, {id:3, name: 'B'}, {id:5, name: 'C'}]
上一篇:按照给定顺序重写数组
下一篇:按照给定数组过滤对象数组