JavaScript 的一维简单数组去重

方式1:利用 Array.from + Set 的唯一性特质

const arr = [1, 2, 4, 5, 2, 3, 1, 3, 4, 6, 7, 4, 5, 9]
const newArr = Array.from(new Set(arr))

方式2:利用 展开运算符(…) + Set 的唯一性特质

const arr = [1, 2, 4, 5, 2, 3, 1, 3, 4, 6, 7, 4, 5, 9]
const newArr = [...new Set(arr)]

方式3:forEach 遍历,将数组的值作为对象的键,再取出对象的所有键组成数组

const arr = [1, 2, 4, 5, 2, 3, 1, 3, 4, 6, 7, 4, 5, 9]
let obj = {}
arr.forEach((item, index) => {
    obj[item] = index
})
let newArr = Object.keys(obj).map(item => Number(item))

方式4:filter 过滤遍历,再使用 indexOf() 查找当前的元素位置是否等于遍历的 index

const arr = [1, 2, 4, 5, 2, 3, 1, 3, 4, 6, 7, 4, 5, 9]
let newArr = []
arr.filter((item, index) => {
    if(arr.indexOf(item, 0) === index){
        newArr.push(item)
    }
})

方式5:map 遍历,再使用 indexOf() 查找当前的元素位置是否等于遍历的 index

const arr = [1, 2, 4, 5, 2, 3, 1, 3, 4, 6, 7, 4, 5, 9]
let newArr = []
arr.map((item, index) => {
    if(arr.indexOf(item, 0) === index){
        newArr.push(item)
    }
})

方式6:使用 sort() 先排序,再比较临近的两个数是否相等,不相等就存入新数组

const arr = [1, 2, 4, 5, 2, 3, 1, 3, 4, 6, 7, 4, 5, 9]
const arrSort = arr.sort()
let newArr = []
for(let i = 0; i < arrSort.length; i++){
    if(arrSort[i] !== arrSort[i+1]){
        newArr.push(arrSort[i])
    }
}

方式7:双重遍历,遍历所有元素是否等于第一重for循环指定位置的元素,如果相等,就使用 splice()删除第二重for循环中的index位置的元素

const arr = [1, 2, 4, 5, 2, 3, 1, 3, 4, 6, 7, 4, 5, 9]
for(let i = 0; i < arr.length; i++){
    for(let j = i + 1; j < arr.length; j++){
        if(arr[i] === arr[j]){
            arr.splice(j, 1)
        }
    }
}

暂时就想到这些方法,欢迎补充!就到这,祝大家开心~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值