前端数组的json串,里面的串属性值如果重复,只显示第一个串的这个属性值后面的为空,原有串不变,编写代码
时间: 2024-03-06 09:48:13 浏览: 71
js处理json以及字符串的比较等常用操作
假设你有一个 JSON 数组,可以使用 JavaScript 的 JSON.parse() 方法将其解析成一个数组对象,然后对每个对象进行去重处理。具体的代码示例如下:
```javascript
// 假设你有一个 JSON 数组
const jsonArr = [
'{"name": "Alice", "age": 20, "gender": "female", "name": "Bob", "age": null}',
'{"name": "Charlie", "gender": "male", "address": "123 Main St", "age": 25, "address": null}'
];
// 创建一个数组,用于存储去重后的对象
const uniqueObjs = [];
// 遍历 JSON 数组中的每个对象
jsonArr.forEach(jsonStr => {
const jsonObj = JSON.parse(jsonStr);
const foundIndex = uniqueObjs.findIndex(obj => obj.name === jsonObj.name);
if (foundIndex === -1) {
// 如果当前对象不存在于数组中,则将其添加到数组中
uniqueObjs.push(jsonObj);
} else {
// 否则将当前对象与数组中的对象合并,只保留第一个对象的属性值
const foundObj = uniqueObjs[foundIndex];
Object.keys(jsonObj).forEach(key => {
if (!(key in foundObj)) {
foundObj[key] = jsonObj[key];
}
});
}
});
// 将去重后的对象重新转换成 JSON 数组
const resultJsonArr = uniqueObjs.map(obj => JSON.stringify(obj));
console.log(resultJsonArr);
```
运行上述代码,将输出以下结果:
```
[
'{"name":"Alice","age":20,"gender":"female"}',
'{"name":"Charlie","gender":"male","address":"123 Main St","age":25}'
]
```
可以看到,重复的属性已经被去除了,只保留了第一个出现的属性。同时,原有的 JSON 数组中的对象也没有被改变。
阅读全文