从对象数组中删除重复项的最快方法是什么?我正在使用这段代码,但是对于 5000 个数组元素来说它非常慢。
const data = [{
account: 'price003',
category: 'FACT',
},
{
account: 'price004',
category: 'FACT',
},
{
account: 'price003',
category: 'FACT',
},
{
account: 'price004',
category: 'FACT',
}];
let newArr = [];
for (let i = 0; i < data.length; i++) {
const index = newArr.findIndex(item => _.isEqual(item, data[i]));
if (index !== -1) {
newArr[index] = data[i];
} else {
newArr.push(data[i]);
}
}
例如,此选项:
更新。更新后的版本:
函数的第二个参数应该返回一个标识符。对于相同的元素,标识符也必须相同。小心字符串连接,因为它,性能下降得很好。
我不知道这种方法有多快——它只是......不同。可能会给别人一些其他的想法。