js 数组去重

// 1.利用 Set 和 Array.from 方法
let arr = [0, 1, 2, 3, 2, 1, 0, 4];
let newArr = Array.from(new Set(arr)); // newArr = [0, 1, 2, 3, 4]

// 2.利用两层循环和数组的 splice 方法
let arr = [0, 1, 2, 3, 2, 1, 0, 4];
for (let i = arr.length - 1; i >=0; i–) {
for (let j = i - 1; j >=0; j–) {
if (arr[i] === arr[j]) {
arr.splice(i ,1);
break;
}
}
} // arr = [0 ,1 ,2 ,3 ,4]

//3.利用数组的 indexOf 或 includes 方法
let arr = [0 ,1 ,2 ,3 ,2 ,1 ,0 ,4];
let newArr = [];
for (let item of arr) {
if (newArr.indexOf(item) === -1) { // 或者 newArr.includes(item) === false
newArr.push(item);
}
} // newArr = [0 ,1 ,2 ,3 ,4]

//4.利用数组的 filter 和 indexOf 方法
let arr = [0 ,1 ,2 ,3 ,2 ,1 ,0 ,4];
let newArr = arr.filter((item,index) => {
return arr.indexOf(item) === index;
}); // newArr = [0 ,1 ,2 ,3 ,4]

//5.利用 Map 或对象
let arr = [0 ,-0 ,‘a’ ,‘a’ ,‘b’ ,‘b’ ,‘c’ ,‘c’];
let mapObj= new Map();
arr.forEach((item,index)=>{
mapObj.set(item,index);
});
console.log(mapObj); // Map(5) { ‘a’ => ‘a’, ‘b’ => ‘b’, ‘c’ => ‘c’, -0 => -0 }
console.log([…mapObj.keys()]); // [“a”, “b”, “c”, -0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是貔貅喔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值