JS中数组去重的方法有哪些

6 篇文章 1 订阅
4 篇文章 0 订阅
1. 使用 Set
const array = [1, 2, 3, 3, 4, 5, 5]
const uniqueArray = [...new Set(array)] // new Set 后是 set 格式,使用 ...扩展符,转为数组形式
console.log('uniqueArray', uniqueArray)

// 注意:如果数组中含有空元素,如:[1, 2, , 3],则空元素会被转为 undefined, 即 [1,2,undefined,3]
2. 使用 filter 和 indexOf
const array = [1, 2, 3, 3, 4, 5, 5, null, null, undefined, 'wew', 'we']
const uniqueArray = array.filter((value, index, self) => {
    return self.indexOf(value) === index;
});
console.log(uniqueArray);
3. 使用 reduce

数组的 reduce() 方法是 js 中的一个高阶函数,用于对数组中的每个元素进行累积操作,并最终返回一个结果。

reduce() 方法接受两个参数:回调函数和初始值。回调函数可以接受四个参数:累加器、当前值、当前索引和原始数组。

回调函数在数组的每个元素上执行,并将累加器和当前值作为参数传递进去。它可以执行任何操作,并返回一个新的累加器值。在等次迭代过程中,累加器的值会被更新。
array.reduce(callback, initialValue);

const array = [1, 2, 3, 3, 4, 5, 5, null, null, undefined, 'wew', 'we']
const uniqueArray = array.reduce((accumulator, currentValue) => {
    if (!accumulator.includes(currentValue)) {
        accumulator.push(currentValue)
    }
    return accumulator
}, [])
console.log(uniqueArray);
4. 使用 for 循环和 includes
const array = [1, 2, 3, 3, 4, 5, 5, null, null, undefined, 'wew', 'we']
const uniqueArray = []
for(let i = 0; i < array.length; i++) {
    if(!uniqueArray.includes(array[i])) {
        uniqueArray.push(array[i])
    }
}
console.log('--uniqueArray--', uniqueArray);
5. 借用临时对象的方式
function unique(arr) {
    let newArr = []
    let temp = {}
    let item;
    
    for(let i = 0, len = arr.length; i < len; i++) {
        item = arr[i];
        if(!temp[item]) {
            temp[item] = true;
            newArr.push(item);
        }
        return newArr;
    } 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值