关键词

JS实现的对象去重功能示例

下面我将详细讲解JS实现的对象去重功能示例的完整攻略。首先,我们需要了解什么是对象去重功能。

什么是对象去重功能?

在JS中,我们经常会遇到需要对一个对象数组进行去重的需求。对象去重功能是指将一个包含多个对象的数组转换为另一个不包含重复对象的数组,去除掉数组中重复的对象。

如何实现对象去重功能?

一般情况下,我们可以通过遍历数组,对每个对象的某个属性进行比较,然后去除掉重复的对象。下面我们就来看一下两个示例,来更好地理解对象去重的实现。

示例一

比如我们有一个包含多个对象的数组:

const objArr = [
  {name: 'Tom', age: 18},
  {name: 'Jack', age: 20},
  {name: 'Tom', age: 18},
  {name: 'Lucy', age: 22},
  {name: 'Jack', age: 20},
]

我们针对这个数组,可以通过以下代码实现对象去重的功能:

// 声明一个空对象
const hash = {}

// 过滤掉重复的对象
const newArr = objArr.filter((item, index) => {
  // 声明对象的唯一性标识符
  const key = item.name + item.age
  // 如果对象的唯一性标识符已经存在于hash对象中,则返回false,被filter过滤掉
  return hash.hasOwnProperty(key) ? false : hash[key] = true
})

console.log(newArr)

示例二

另外,我们也可以使用ES6的Set对象对对象进行去重,具体实现方式如下:

const objArr = [
  {name: 'Tom', age: 18},
  {name: 'Jack', age: 20},
  {name: 'Tom', age: 18},
  {name: 'Lucy', age: 22},
  {name: 'Jack', age: 20},
]

const newArr = [...new Set(objArr.map(item => JSON.stringify(item)))].map(item => JSON.parse(item))

console.log(newArr)

以上就是两个JS实现的对象去重功能的示例,希望对你有所帮助。

本文链接:http://task.lmcjl.com/news/9188.html

展开阅读全文