一看就会——js数组去重

原生for循环去重

var str = [
    1, 2, 2, 2, 2,
    3, 4, 43, 2, 21,
    2, 1, 1, 1, 2, 3,
    3, 4, 5, 6, 7, 7,
    6, 57, 7, 89, 9,
    6, 45, 32, 43, 43,
]
var strArr=[]  //存放不重复数据
for (let i = 0; i < str.length; i++) {
    if(strArr.indexOf(str[i])===-1){
        strArr.push(str[i])
    }
}
console.log(str)  //原数组
console.log(strArr)   //去重后

ES6中的set方法去重

set是一个集合允许存储任何类型的唯一值,无论是原始值还是对象引用

set通过构造函数的方式生成,接收一个数组作为参数。

Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。

var str = [
    1, 2, 2, 2, 2,
    3, 4, 43, 2, 21,
    2, 1, 1, 1, 2, 3,
    3, 4, 5, 6, 7, 7,
    6, 57, 7, 89, 9,
    6, 45, 32, 43, 43,
]



//es6中的set方法去重
console.log(str)    //原数组
str.sort((a, b) => {  //排序
    return a - b
})
console.log(
    Array.from(
        new Set(str)
    )
)  //去重后

//ES6中的set方法不允许重复。Array.from()方法把一个类似于数组的对象转换成数组
//set是一个集合允许存储任何类型的唯一值,无论是原始值还是对象引用
//set通过构造函数的方式生成,接收一个数组作为参数

//Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。

打印出来可以看到

在这里插入图片描述

posted @ 2020-07-17 16:53  江咏之  阅读(106)  评论(0编辑  收藏  举报