如何将一个json数组内部的非重复的数据直接删除出json数组
时间: 2024-09-09 09:03:34 浏览: 34
js操作两个json数组合并、去重,以及删除某一项元素
如果你想从JSON数组中删除所有重复的元素,并保留每个元素第一次出现的情况,你可以使用JavaScript的Set数据结构配合循环来实现。Set是一种特殊的集合类型,其中的元素都是唯一的,没有重复值。以下是一个示例:
假设你有一个名为`originalArray`的JSON数组:
```javascript
const originalArray = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' }, // 这是一个重复项
{ id: 3, name: 'Bob' }, // 还有另一个重复项
];
```
你可以创建一个新的数组,只包含Set中的元素,这样就去除了重复:
```javascript
function removeDuplicates(jsonArray) {
const uniqueItems = [];
const uniqueSet = new Set();
for (let item of jsonArray) {
// 检查item是否已经在uniqueSet中,如果没有则添加
if (!uniqueSet.has(JSON.stringify(item))) {
uniqueItems.push(item);
uniqueSet.add(JSON.stringify(item)); // 添加字符串形式的item到Set,因为JSON对象不可直接比较
}
}
return uniqueItems;
}
const uniqueArray = removeDuplicates(originalArray);
console.log(uniqueArray);
```
运行上述代码后,`uniqueArray`将会得到:
```javascript
[
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
]
```
注意:这种方法适用于对象的键值对是确定排序的,因为`JSON.stringify()`会保证相同的对象总是返回相同的字符串。如果你的对象内部的顺序可能会变化,那么你需要更复杂的逻辑来比较它们。
阅读全文