1.全部一样才去重
Array.from(new Set(lengthArr))
2.根据某个值去重
(1)
Array.from(new Set(nodeArr.map((item) => item.name)))
(2)
const map = new Map();
for (const item of itemList) {
if (!map.has(item.id) ) {
map.set(item.id, item);
}
}
console.log( map,[...map.keys()],[...map.values()]);
3.根据多个值去重
(1)
const map = new Map();
for (const item of itemList) {
if (!map.has(item.id) && !map.has(item.label)) {
map.set(item.id, item);
}
}
(2)
for (let i = 0; i < itemList.length - 1; i++) {
for (let j = i + 1; j < itemList.length; j++) {
if (
itemList[i].source == itemList[j].source &&
itemList[i].target == itemList[j].target &&
itemList[i].relationNum == itemList[j].relationNum &&
itemList[i].rank == itemList[j].rank
) {
itemList.splice(j, 1);
//因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
j--;
}
}
}