let array= [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' }, // 重复对象,应该删除前面的
{ id: 3, name: 'Charlie' }
];
function removeFirst(array, key) {
const seen = new Map();
// 倒序遍历数组,从后往前检查
for (let i = array.length - 1; i >= 0; i--) {
const item = array[i];
const itemKey = item[key];
if (seen.has(itemKey)) {
// 如果已存在,删除当前(前面的)对象
array.splice(i, 1);
} else {
seen.set(itemKey, true);
}
}
return array;
}
dataArray = removeFirst(array, 'id');
console.log(dataArray);