Javascript 如何从数组对象属性值中删除重复项?
如何遍历对象属性并从作为该对象属性值的数组中删除重复项 原物Javascript 如何从数组对象属性值中删除重复项?,javascript,arrays,filter,duplicates,Javascript,Arrays,Filter,Duplicates,如何遍历对象属性并从作为该对象属性值的数组中删除重复项 原物 var navObjects = { 'Components': ['x', 'y', 'x'], 'Document': ['z', 'z', 'z', 'q'], 'Utilities': ['a', 'b', 'c'] } 期望对象 navObjects: { 'Components': ['x', 'y'], 'Document': ['z','q'], 'Utilities'
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);
}
运行此块后,阵列保持不变。此代码将帮助您实现目标
var newNavObjects = {}
var existObjects = {}
for(let key in navObjects) {
let objects = navObjects[key];
newNavObjects[key] = [];
existObjects[key] = {};
for(let object of objects) {
if (!existObjects[key][object]) {
existObjects[key][object] = 1;
newNavObjects[key].push(object);
}
}
}
delete existObjects;
console.log(newNavObjects);
我创建了新的效率变量。如果我们使用indexOf检查数组中的值是否存在。它将比我们检查目标变量键更重,在这种情况下,existObjects。这仍然不是最好的解决方案,但这肯定可以 此代码将帮助您实现目标
var newNavObjects = {}
var existObjects = {}
for(let key in navObjects) {
let objects = navObjects[key];
newNavObjects[key] = [];
existObjects[key] = {};
for(let object of objects) {
if (!existObjects[key][object]) {
existObjects[key][object] = 1;
newNavObjects[key].push(object);
}
}
}
delete existObjects;
console.log(newNavObjects);
我创建了新的效率变量。如果我们使用indexOf检查数组中的值是否存在。它将比我们检查目标变量键更重,在这种情况下,existObjects。这仍然不是最好的解决方案,但这肯定可以 您可以创建一个集合来删除重复项并获取值,以便将其转换回数组,如:
(new Set(['z', 'z', 'z', 'q'])).values()
让我们把它当作一个函数:
然后使用它:
var navObjects = {
'Components': removeDuplicates(['x', 'y', 'x']),
'Document': removeDuplicates(['z', 'z', 'z', 'q']),
'Utilities': removeDuplicates(['a', 'b', 'c'])
}
您可以创建一个集来删除重复项并获取值,以便将其转换回数组,如:
(new Set(['z', 'z', 'z', 'q'])).values()
让我们把它当作一个函数:
然后使用它:
var navObjects = {
'Components': removeDuplicates(['x', 'y', 'x']),
'Document': removeDuplicates(['z', 'z', 'z', 'q']),
'Utilities': removeDuplicates(['a', 'b', 'c'])
}
您可以使用构造函数和:
常量navObjects={
'Components':['x','y','x'],
'文档':['z','z','z','q'],
“实用工具”:[a”,“b”,“c']
};
用于导航对象中的常量键{
navObjects[key]=[…新设置navObjects[key]];
}
console.lognavObjects 您可以使用构造函数和:
常量navObjects={
'Components':['x','y','x'],
'文档':['z','z','z','q'],
“实用工具”:[a”,“b”,“c']
};
用于导航对象中的常量键{
navObjects[key]=[…新设置navObjects[key]];
}
console.lognavObjects;美好的这是成功的。只有当我们假设对象只有数组成员,并且我们打算删除所有成员的重复项时,这才有效。很好。这是成功的。只有当我们假设对象只有数组成员,并且我们打算删除所有成员的重复项时,这才有效。我想知道这个答案被否决的原因。我测试了它,它成功了。如果有人能解释原因,我将不胜感激。我想知道这个答案被否决的原因。我测试了它,它成功了。如果有人能解释原因,我将不胜感激。