首页 编程开发javascript数组去重常用函数

javascript数组去重常用函数

发布于: 2020-09-01 01:45:47
字数: 1201
评论: 0
阅读: 1654

JavaScript中数组去重的几种方法如下, 这几个函数都可以对简单的一维数组进行去除重复的操作。

注意:请注意数据类型,比如字符串的1和数组1是不一样的,不算重复

一、利用数组的indexOf方法去重 (ES5)

原理:array.indexOf(item, start) 返回数组array中指定元素item的位置,没有则返回-1

var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2];

function unique(arr) {
    var len = arr.length;
    var temp = [];       // 新建一个数组来存放arr中的值
    for (var i = 0; i < len; i++) {
        if(temp.indexOf(arr[i]) === -1){
        temp.push(arr[i]);
    }
    }
    return temp;
}

// [1, 3, 8, 9, 5, 4, 6, 2]
console.log(unique(arr));

二、使用ES6中的 Set 方法去重

原理:ES6 提供了新的数据结构 Set。它似于数组,但它的一大特性就是所有元素都是唯一的,没有重复。


var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2];

function unique(arr) {
    return Array.from(new Set(arr));
}

// [1, 3, 8, 9, 5, 4, 6, 2]
console.log(unique(arr));

三、使用ES6中数组的includes 方法去重

原理:ES6 给数组提供了includes方法,判断元素是否在该数组中存在,类似indexOf判断

var arr = [1, 3, 8, 9, 3, 5, 4, 4, 6, 6, 2];

function unique(arr) {
    var len = arr.length;
    var temp = [];       // 新建一个数组来存放arr中的值
    for (var i = 0; i < len; i++) {
        if(!temp.includes(arr[i])){
            temp.push(arr[i]);
        }
    }
    return temp;
}

// [1, 3, 8, 9, 5, 4, 6, 2]
console.log(unique(arr));



扫描二维码,在手机上阅读