JS数组去重,数组里的元素是对象,根据指定对象key名去重
如果你有一个JavaScript数组,其中包含对象,并且你想根据对象的某个特定键(例如 keyName)去重,同时使用后面的数据替换前面的重复数据,你可以使用 reduce 函数。
下面是一个示例代码,说
如果你有一个JavaScript数组,其中包含对象,并且你想根据对象的某个特定键(例如 keyName
)去重,同时使用后面的数据替换前面的重复数据,你可以使用 reduce
函数。
下面是一个示例代码,说明如何根据指定的对象键去重,并使用后面的数据替换前面的数据:
function dedupeByKey(array, keyName) {
return array.reduce((result, currentItem) => {
const existingIndex = result.findIndex(item => item[keyName] === currentItem[keyName]);
if (existingIndex === -1) {
// 如果当前对象不在结果数组中,将其添加到数组中
result.push(currentItem);
} else {
// 如果当前对象已经存在于结果数组中,使用后面的数据替换前面的数据
result[existingIndex] = currentItem;
}
return result;
}, []);
}
// 示例对象数组
const array = [
{ id: 1, name: 'A1' },
{ id: 2, name: 'A2' },
{ id: 3, name: 'A3' },
{ id: 2, name: 'B2' }, // 使用后面的数据替换前面的数据
{ id: 3, name: 'B3' }, // 使用后面的数据替换前面的数据
{ id: 4, name: 'B4' }
];
const deduplicatedArray = dedupeByKey(array, 'id');
console.log(deduplicatedArray);
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论