如何遍历对象属性并从作为该对象属性值的数组中删除重复项?
原始物件
var navObjects = {
'Components': ['x', 'y', 'x'],
'Document': ['z', 'z', 'z', 'q'],
'Utilities': ['a', 'b', 'c']
}
所需对象
navObjects: {
'Components': ['x', 'y'],
'Document': ['z','q'],
'Utilities': ['a', 'b', 'c']
}
我尝试过的
for (let i = 0; i < Object.values(navObjects).length; i++) {
let obj = Object.values(navObjects)[i];
Object.values(obj).filter((item, index) => obj.indexOf(item) === index);
console.log(obj);
}
运行此块后,阵列保持不变。
最佳答案
您可以使用Set构造函数和spread syntax来实现:
const navObjects = {
'Components': ['x', 'y', 'x'],
'Document': ['z', 'z', 'z', 'q'],
'Utilities': ['a', 'b', 'c']
};
for (const key in navObjects) {
navObjects[key] = [...new Set(navObjects[key])];
}
console.log(navObjects);