当我们处理包含多个json对象的数组数据时,可能需要将重复的json对象去重,以免造成数据混乱。以下是JS实现去除数组中重复json对象的方法示例及详细步骤:
当我们处理包含多个json对象的数组数据时,可能需要将重复的json对象去重,以免造成数据混乱。以下是JS实现去除数组中重复json对象的方法示例及详细步骤:
方法一:使用Array.prototype.filter()和JSON.stringify()
const arr = [{name: 'Alice', age: 23}, {name: 'Bob', age: 24}, {name: 'Alice', age: 23}];
const uniqueArr = arr.filter((obj, index, arr) => {
return arr.map(mapObj => JSON.stringify(mapObj)).indexOf(JSON.stringify(obj)) === index;
});
console.log(uniqueArr); // [{name: 'Alice', age: 23}, {name: 'Bob', age: 24}]
此方法通过对数组的每一个json对象进行字符串化,再利用数组的indexOf()方法来返回该字符串在数组中首次出现的位置,来确定该json对象是否重复。需要注意的是,该方法可能会存在一些性能问题,需要谨慎使用。
方法二:使用Map数据结构
const arr = [{name: 'Alice', age: 23}, {name: 'Bob', age: 24}, {name: 'Alice', age: 23}];
const map = new Map();
const uniqueArr = [];
arr.forEach(obj => {
if (!map.has(JSON.stringify(obj))) {
map.set(JSON.stringify(obj), true);
uniqueArr.push(obj);
}
});
console.log(uniqueArr); // [{name: 'Alice', age: 23}, {name: 'Bob', age: 24}]
该方法使用JavaScript的Map数据结构,将每个json对象以字符串为键存储在Map实例中。当下一个json对象与已有的任何一个对象相同时,它已存在于Map实例中,不需要将其加入结果数组中。
总之,即使有许多处理数组的不同方法,这些方法仍然是处理json对象数组的最佳实践,在进行任何复杂的AJAX操作或者其他方面需要操作json数据时非常实用。
沃梦达教程
本文标题为:JS实现去除数组中重复json的方法示例
基础教程推荐
猜你喜欢
- javascript实现设置、获取和删除Cookie的方法 2024-02-05
- 详解CSS的border边框属性及其在CSS3中的新特性 2024-01-20
- 基于Jquery.history解决ajax的前进后退问题 2022-10-17
- jquery 元素相对定位代码 2023-12-22
- javascript静态的url如何传递 2024-02-08
- JavaScript实现动态生成表格案例详解 2023-08-12
- 纯js实现div内图片自适应大小(已测试,兼容火狐) 2024-01-07
- vuejs教程 笔记(一) 2023-10-08
- js替代copy(示例代码) 2023-12-02
- javascript创建cookie、读取cookie 2024-02-05