美文网首页
介绍一些数组的去重方法

介绍一些数组的去重方法

作者: Cheney丶1993 | 来源:发表于2018-10-30 10:26 被阅读0次
数组去重,是一个面试经常会遇见的问题,这里介绍一些数组去重的方法,比较适合接触JavaScript一段时间的童鞋。

最基础的,通过 indexOf 来判断

/*
* 新建一个 temp 数组用来存放去重后的数组。
* 遍历已传入的数组,indexOf 判断每一项是否在新数组里存在,不存在就 push 进去
* */
let arr = [1, 2, 3, 4, 5, 6, 3, 1, 4, 8, 0, 4, 2];
function unique (array) {
    let temp = [];  // 用来存放去重后的数组
    for (let i = 0; i < array.length; i++) {
        if (temp.indexOf(array[i]) === -1) {
            temp.push(array[i]);
        }
    }
    return temp;
}

// 这里介绍 另外一种也是通过 indexOf 来实现的,遍历判断数组中的第 i 项的位置是不是 i,
// 如果不是,则代表是重复的。
function unique1 (array) {
    let temp = [];
    for (let i = 0; i < arr.length; i++) {
        if (arr.indexOf(array[i]) === i) {
            console.log(array[i], i)
            temp.push(array[i]);
        }
    }
    return temp;
}

一行代码实现数组的去重!通过 es6 新的数据结构 Set来实现。它类似于数组,但是成员的值都是唯一的,没有重复的值。

 let arr = [1, 2, 3, 4, 5, 6, 3, 1, 4, 8, 0, 4, 2];
const set = [...new Set(arr)];
或者、
Array.from(new Set(arr))

// 笔者认为最高大上的去重方法,有木有! ^_^

比较高效的一种,有点难以理解

/*
* 获取没重复的最右一值放入新数组。
* 循环检测是否有重复的值,出现重复值则进入顶层循环的下一轮进行判断
* */
function unique (array) {
    let temp = [];
    let index = [];
    let l = array.length;
    for (let i = 0; i < l; i++) {
        for (let j = i + 1; j < l; j++) {
            if (array[i] === array[j]) {
                i++;
                j = i;
            }
        }
        temp.push(array[i]);
        index.push(i);
    }
    return temp;
}

数组去重的方法有很多,当然这些不同思路的解决方法,在性能和效率上也有很大差异。这里就不过多的做介绍了

相关文章

  • 介绍一些数组的去重方法

    数组去重,是一个面试经常会遇见的问题,这里介绍一些数组去重的方法,比较适合接触JavaScript一段时间的童鞋。...

  • 10.数组的排序 和去重

    (1).数组排序 (2).数组去重 a.方法一: //用indexOf方法 indexOf方法介绍:arr.ind...

  • ES6数组去重

    普通数组去重 方法1 方法2 对象数组去重

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • 数组

    数组 数组常用方法 数组去重

  • 数组去重

    分类 非对象数组去重 对象数组去重 分类一 --- 非对象数组去重 方法一: set(es6常用) 方法二:red...

  • js:数组去重

    数组去重的常见写法: 数组去重封装成方法: es6的数组去重(Array.from):

  • 数组对象去重方法:

    数组对象去重方法: // 数组对象去重 ```` toRetry = (arr = []) => { let re...

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

网友评论

      本文标题:介绍一些数组的去重方法

      本文链接:https://www.haomeiwen.com/subject/remwtqtx.html