• 首页
  • 电影
  • Js
  • 前端
  • 新旅
  • 奇技
  • 网安
  • 歌单
  • 关于
  • 搜索
  • 夜间模式
    ©2013-2025  成长小破站 Theme by OneBlog
    搜索
    标签
    # css # js # uniapp # ps # chrome # 小程序 # javascript # 布局 # typecho # 激活码
  • 首页>
  • Javascript>
  • 正文
  • js数组去重

    2024年07月16日 698 阅读 0 评论 1247 字

    今天一个同学去面试,面试官问了他一个问题.
    js数组如何去重?

    使用set

    ES6中关键词set结构

    let arr = [1, 2, 3, 4, 4, 5, 6, 6];
    let uniqueArr = [...new Set(arr)];
    console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5, 6]

    使用filter和indexOf

    let arr = [1, 2, 3, 4, 4, 5, 6, 6];
    let uniqueArr = arr.filter((value, index, self) => {
        return self.indexOf(value) === index;
    });
    console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5, 6]

    使用reduce

    let arr = [1, 2, 3, 4, 4, 5, 6, 6];
    let uniqueArr = arr.reduce((accumulator, current) => {
        return accumulator.includes(current) ? accumulator : [...accumulator, current];
    }, []);
    console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5, 6]

    使用map

    let arr = [1, 2, 3, 4, 4, 5, 6, 6];
    let uniqueArr = [...new Map(arr.map(item => [item, item])).values()];
    console.log(uniqueArr); // 输出:[1, 2, 3, 4, 5, 6]

    如果没有这些函数也可以使用for循环来去重,使用传统的 for 循环进行数组去重,可以通过遍历数组并检查元素是否已经存在于一个新的结果数组中来实现。

    let array = [1, 2, 2, 3, 4, 4, 5];
    let uniqueArray = [];
    
    for (let i = 0; i < array.length; i++) {
        if (uniqueArray.indexOf(array[i]) === -1) {
            uniqueArray.push(array[i]);
        }
    }
    
    console.log(uniqueArray); // [1, 2, 3, 4, 5]
    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    js数组去重
    — END —
    首页电影Js前端新旅奇技网安歌单关于
    Copyright©2013-2025  All Rights Reserved.  Load:0.032 s
    豫公网安备41050202000235   豫ICP备18019224号-2
    Theme by OneBlog V3.6.4
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。