要从复杂的对象数组中获取唯一的对象数组,可以使用JavaScript中的Map
数据结构来帮助实现。以下是一个示例代码:
function getUniqueObjects(arr, key) {
const uniqueMap = new Map();
arr.forEach(item => {
if (!uniqueMap.has(item[key])) {
uniqueMap.set(item[key], item);
}
});
return Array.from(uniqueMap.values());
}
// 示例数据
const data = [
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 },
{ id: 1, name: 'Alice', age: 25 },
{ id: 3, name: 'Charlie', age: 35 }
];
// 获取唯一的对象数组,基于id字段
const uniqueData = getUniqueObjects(data, 'id');
console.log(uniqueData);
Map
对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象和原始值)都可以作为一个键或一个值。forEach
方法遍历数组中的每个对象。Map
的has
方法检查当前对象的键是否已经存在于Map
中。如果不存在,则将该对象添加到Map
中。Array.from(uniqueMap.values())
将Map
中的值转换为数组并返回。通过这种方法,你可以有效地从复杂的对象数组中获取唯一的对象数组。
领取专属 10元无门槛券
手把手带您无忧上云