数组的去重

先看代码:

const data = [
  {
    id: 1,
    name: 'zhangsan'
  },
  {
    id: 2,
    name: 'lisi'
  },
  {
    id: 1,
    name: 'zhangsan'
  },
  {
    id: 3,
    name: 'zhaoliu'
  }
];

const uniqueData = Array.from(new Set(data.map(item => 
// 补充一下,这里也可以直接用id 不一定非要序列化
JSON.stringify(item)))).map(item => JSON.parse(item));


console.log(uniqueData);
// Output: [{ id: 1, name: 'zhangsan' }, { id: 2, name: 'lisi' }, { id: 3, name: 'zhaoliu' }]
 

解答疑问:

new Set(data.map(item => 

JSON.stringify(item)))是做什么?

回答:

这段代码是用于将一个数组 data 中的元素去重,并且保留原始顺序。具体解释如下:

  1. data.map(item => JSON.stringify(item)):这是一个数组的映射操作,将数组 data 的每个元素转换为它的字符串表示。这是为了确保比较的准确性,因为 Set 数据结构使用严格相等运算符(===)来判断元素是否相等。
  2. new Set(...):通过传入映射后的数组,创建一个新的 Set 对象。Set 是一种无重复值的集合,只包含唯一的元素。
  3. 最终返回的是一个包含无重复元素的 Set 对象。

这段代码的作用可以理解为,将数组 data 中的元素去重并返回去重后的结果

所以要将每个item变成字符串是因为要准确判断

你可能感兴趣的:(前端,javascript,开发语言)