JS实现去除数组中重复json的方法示例

当我们处理包含多个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的方法示例

基础教程推荐