es6一行代码搞定数组去重

运用知识点:
…扩展运算符(扩展运算符用三个点号表示,功能是把数组或类数组对象展开成一系列用逗号隔开的值)以及Set key不能重复的特性

var  shuzu =["red","blue","red","green","blue"];
var quchonghou = [...new Set(shuzu)];
console.log(quchonghou,Array.isArray(quchonghou));

执行后结果为:

在这里插入图片描述

是不是很神奇? 我以前虽然用想到用Set但是没想到用…扩展运算符然后以字面量的形式创建数组。

补充一个原始的

// 思路:获取没重复的最右一值放入新数组
/*
* 推荐的方法
*
* 方法的实现代码相当酷炫,
* 实现思路:获取没重复的最右一值放入新数组。
* (检测到有重复值时终止当前循环同时进入顶层循环的下一轮判断)*/
function uniq(array){
    var temp = [];
    var index = [];
    var l = array.length;
    for(var i = 0; i < l; i++) {
        for(var j = i + 1; j < l; j++){
            if (array[i] === array[j]){
                i++;
                j = i;
            }
        }
        temp.push(array[i]);
        index.push(i);
    }
    console.log(index);
    return temp;
}

var aa = [1,2,2,3,5,3,6,5];
console.log(uniq(aa));

你可能感兴趣的:(es6一行代码搞定数组去重)