首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

去除重复数据 js

在 JavaScript 中去除重复数据常见的方法有以下几种:

一、使用 Set 对象

Set 是 ES6 引入的一种新的数据结构,它类似于数组,但是成员的值都是唯一的。

示例代码:

代码语言:txt
复制
const array = [1, 2, 2, 3, 3, 4];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // [1, 2, 3, 4]

优势:

  • 简洁高效,代码量少。

应用场景:

  • 处理简单的数值或字符串数组去重。

二、使用 filter 方法结合 indexOf

示例代码:

代码语言:txt
复制
const array = [1, 2, 2, 3, 3, 4];
const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);
console.log(uniqueArray); // [1, 2, 3, 4]

优势:

  • 兼容性较好,适用于较旧的浏览器。

应用场景:

  • 对于不支持 Set 的环境或者需要更复杂的去重条件时使用。

三、使用对象属性

通过将数组元素作为对象的属性名来实现去重。

示例代码:

代码语言:txt
复制
const array = [1, 2, 2, 3, 3, 4];
const obj = {};
const uniqueArray = [];
for (let i = 0; i < array.length; i++) {
  if (!obj[array[i]]) {
    obj[array[i]] = true;
    uniqueArray.push(array[i]);
  }
}
console.log(uniqueArray); // [1, 2, 3, 4]

优势:

  • 性能在一定情况下较好。

应用场景:

  • 处理大量数据且对性能有一定要求的情况。

可能出现的问题及原因:

  • 如果数组中的元素是对象或者其他复杂类型,直接使用上述方法可能无法正确去重,因为对象的比较是基于引用的,而不是值。

解决方法:

  • 对于对象数组,可以根据对象的特定属性进行去重。

示例代码:

代码语言:txt
复制
const array = [{id: 1}, {id: 2}, {id: 1}];
const uniqueArray = array.filter((item, index, self) =>
  index === self.findIndex((t) => t.id === item.id)
);
console.log(uniqueArray); // [{id: 1}, {id: 2}]
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

7分54秒

MySQL教程-27-去除重复记录

19分51秒

Web前端框架通用技术 webpack5 18_去除项目里的死代码(无用的js和css代码) 学习猿

15分5秒

19_尚硅谷_Kafka_生产者_数据重复

10分52秒

110 - Java入门极速版 - 进阶语法 - 集合 - HashSet - 重复数据

18分0秒

6.监听RadioGroup的状态&屏蔽各个页面重复初始化数据.avi

14分14秒

06. 尚硅谷_面试题_去掉数组中重复性的数据.avi

24分18秒

JavaScript教程-12-JS的数据类型

40分41秒

02.尚硅谷_JS高级_数据类型.avi

47分38秒

04.尚硅谷_JS高级_数据_变量_内存.avi

26分38秒

49.尚硅谷_JS基础_基本数据类型和引用数据类型

1分38秒

腾讯位置服务数据可视化JS API重磅升级!

24分36秒

80.腾讯云EMR-实时数仓搭建-DWS层-交易域-SKU粒度下单需求-left join重复数据

领券