以下是一个示例代码,演示如何遍历对象数组,删除重复项,并将布尔值赋给原始值:
// 示例对象数组
const arr = [
{ id: 1, name: 'Alice', value: null },
{ id: 2, name: 'Bob', value: null },
{ id: 3, name: 'Alice', value: null },
{ id: 4, name: 'Charlie', value: null },
{ id: 5, name: 'Bob', value: null }
];
// 存储出现过的name值
const uniqueNames = {};
// 遍历对象数组
arr.forEach(obj => {
// 检查name值是否已经出现过
if (uniqueNames[obj.name]) {
// 如果出现过,则设置value为true
obj.value = true;
} else {
// 如果未出现过,则设置value为false,并将name添加到uniqueNames中
obj.value = false;
uniqueNames[obj.name] = true;
}
});
// 打印结果
console.log(arr);
上述代码会输出以下结果:
[
{ id: 1, name: 'Alice', value: false },
{ id: 2, name: 'Bob', value: false },
{ id: 3, name: 'Alice', value: true },
{ id: 4, name: 'Charlie', value: false },
{ id: 5, name: 'Bob', value: true }
]
通过遍历对象数组,我们首先创建了一个uniqueNames
对象来存储已经出现过的name
值。然后,我们遍历每个对象,检查name
值是否已经在uniqueNames
中出现过。如果出现过,我们将value
属性设置为true
,否则,我们将value
属性设置为false
,并将name
添加到uniqueNames
中。最后,我们打印出结果数组,其中value
属性已经被正确赋值。