前端 json串中如果当前元素和所有元素id相同,则显示一个其他的写为空,代码详细编写
时间: 2024-03-05 08:52:26 浏览: 79
假设有以下的 JSON 数据:
```
[
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Banana"
}
]
```
如果当前元素的 `id` 属性值与数组中的所有元素的 `id` 属性值都相同,则将该元素的 `name` 属性值设置为空字符串。
以下是代码详细编写:
```javascript
const data = [
{
"id": 1,
"name": "Apple"
},
{
"id": 2,
"name": "Orange"
},
{
"id": 3,
"name": "Banana"
}
];
for (let i = 0; i < data.length; i++) {
const currentId = data[i].id;
let allIdsSame = true;
for (let j = 0; j < data.length; j++) {
if (i === j) {
continue;
}
if (currentId !== data[j].id) {
allIdsSame = false;
break;
}
}
if (allIdsSame) {
data[i].name = "";
}
}
console.log(data);
```
上述代码中,我们使用了两个嵌套的 for 循环,用于遍历数组中的所有元素,并比较它们的 `id` 属性值是否相同。如果不相同,则将 `allIdsSame` 标记为 false,并跳出内层循环。如果所有元素的 `id` 属性值都相同,则将该元素的 `name` 属性值设置为空字符串。最后,我们打印出更新后的 JSON 数据。
阅读全文