利用ES6 Set去重

方法一: 使用 Set

javascript 复制代码
const arr = [1, 2, 3, 4, 4, 5, 6, 6, 7];
const uniqueArr = Array.from(new Set(arr));
// 或者使用扩展运算符
// const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6, 7]

方法二: 使用 indexOf

javascript 复制代码
const arr = [1, 2, 3, 4, 4, 5, 6, 6, 7];
const uniqueArr = [];
arr.forEach(item => {
  if (uniqueArr.indexOf(item) === -1) {
    uniqueArr.push(item);
  }
});
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6, 7]

方法三: 使用 includes

javascript 复制代码
const arr = [1, 2, 3, 4, 4, 5, 6, 6, 7];
const uniqueArr = [];
arr.forEach(item => {
  if (!uniqueArr.includes(item)) {
    uniqueArr.push(item);
  }
});
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6, 7]

方法四: 使用 filter

javascript 复制代码
const arr = [1, 2, 3, 4, 4, 5, 6, 6, 7];
const uniqueArr = arr.filter((item, index, array) => {
  return array.indexOf(item) === index;
});
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6, 7]

方法五: 使用 reduce

javascript 复制代码
const arr = [1, 2, 3, 4, 4, 5, 6, 6, 7];
const uniqueArr = arr.reduce((result, current) => {
  if (!result.includes(current)) {
    result.push(current);
  }
  return result;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5, 6, 7]
相关推荐
库玛西29 分钟前
现代 C++ 智能指针全景指南:从 RAII 思想到工业级实践
c语言·开发语言·c++·笔记·面试
liulilittle1 小时前
无锁并发容器的设计与实现原理
开发语言·c++·set·map·并发·无锁·lock-free
朋克洛德的码农1 小时前
Go并发-sync包四剑客:Mutex、RWMutex、WaitGroup、Once-从入门到原理
开发语言·后端·golang
拾年2751 小时前
React Hooks 进阶篇:useMemo / useCallback / useReducer / useImperativeHandle,用「算账 +
前端·javascript·react.js
Jackson__1 小时前
面试官:如何在老项目中使用新框架,并实现通信?
前端·javascript·面试
拾年2752 小时前
React Hooks 保姆级教程:把组件想象成失忆的打工人,4 个 Hook 带你原地起飞
前端·javascript·react.js
默_笙2 小时前
😝 5 亿次循环卡死页面?我用 Web Worker 把它扔进后台线程,页面丝滑如初
前端·javascript
CAD老兵2 小时前
一行代码集成 DWG/DXF 图纸查看:测量批注,数据不出站
前端·javascript·github
小林ixn2 小时前
单例模式:从弹窗管理到全局状态,一个模式搞定
前端·javascript·设计模式