如果有重复,给有重复的对象里增加个key值 isRepeat: true
比如
[
{ value: 123, key:1 },
{ value: 111, key:2},
{ value: 123, key:3}
]
处理后是
[
{ value: 123, key:1, isRepeat: true },
{ value: 111, key:2 },
{ value: 123, key:3, isRepeat: true }
]
麻烦各位大佬了
如果有重复,给有重复的对象里增加个key值 isRepeat: true
比如
[
{ value: 123, key:1 },
{ value: 111, key:2},
{ value: 123, key:3}
]
处理后是
[
{ value: 123, key:1, isRepeat: true },
{ value: 111, key:2 },
{ value: 123, key:3, isRepeat: true }
]
麻烦各位大佬了
const bucket = {}
for (const [ key, item ] of arr.entries()) {
if (item.value in bucket) arr[bucket[item.value]].isRepeat = item.isRepeat = true
else bucket[item.value] = key
}
const arr = [{
value: 123,
key: 1
},
{
value: 111,
key: 2
},
{
value: 123,
key: 3
}
]
const valueMap = {};
arr.forEach((item, index) => {
if (!valueMap[item.value]) valueMap[item.value] = new Array();
valueMap[item.value].push(index);
});
for (let key in valueMap) {
const values = valueMap[key];
if (values.length < 2) continue;
for (let i = 0; i < values.length; i++) {
const index = values[i];
arr[index].isRepeat = true;
}
}
let arr = [
{ value: 123, key: 1 },
{ value: 111, key: 2 },
{ value: 123, key: 3 },
]
let res = arr.reduce((acc, curr) => {
let indexOf = acc.map(item => item.value).indexOf(curr.value)
if (indexOf !== -1) {
curr.isRepeat = true
if (!acc[indexOf].isRepeat) {
acc[indexOf].isRepeat = true
}
}
acc.push(curr)
return acc
}, [])
console.log(res);
14 回答15.1k 阅读
7 回答3.9k 阅读✓ 已解决
12 回答5.6k 阅读✓ 已解决
16 回答6k 阅读
9 回答4k 阅读
7 回答4.5k 阅读✓ 已解决
10 回答8.6k 阅读