下面我将详细讲解“js数组去重常见的方法汇总(7种)”。
一、引言
在JavaScript的实际开发中,经常会遇到需要对数组进行去重操作的情况。而JavaScript提供了多种方法来进行数组去重操作,下面将详细介绍七种常见的方法。
二、使用Set
Set是ES6新引入的一种集合数据类型,它可以存储任意类型的唯一值。使用Set可以很方便地实现数组去重,只需要将数组转化成Set对象,然后再转化回数组即可。
示例代码如下:
let arr = [1, 2, 3, 2, 1];
let set = new Set(arr); //创建Set
let newArr = Array.from(set); //将Set转为数组
console.log(newArr); //输出[1, 2, 3]
三、使用indexOf
利用indexOf方法来判断一个元素在数组中是否存在,可以很方便地实现数组去重。
示例代码如下:
let arr = [1, 2, 3, 2, 1];
let newArr = [];
for(let i = 0; i < arr.length; i++){
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
console.log(newArr); //输出[1, 2, 3]
四、使用includes
includes方法是ES7引入的新方法,用来判断一个数组是否包含某个元素。利用它也可以实现数组去重。
示例代码如下:
let arr = [1, 2, 3, 2, 1];
let newArr = [];
for(let i = 0; i < arr.length; i++){
if(!newArr.includes(arr[i])){
newArr.push(arr[i]);
}
}
console.log(newArr); //输出[1, 2, 3]
五、使用filter
使用filter可以很方便地筛选出数组中符合条件的元素,利用这一特性也可以实现数组去重。
示例代码如下:
let arr = [1, 2, 3, 2, 1];
let newArr = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});
console.log(newArr); //输出[1, 2, 3]
六、使用reduce
使用reduce可以很方便地将数组中的元素逐个累加,并返回一个值。结合indexOf方法也可以实现数组去重。
示例代码如下:
let arr = [1, 2, 3, 2, 1];
let newArr = arr.reduce((prev, cur) => {
if(prev.indexOf(cur) === -1){
prev.push(cur);
}
return prev;
}, []);
console.log(newArr); //输出[1, 2, 3]
七、使用Map
Map也可以用来实现数组去重,它类似于Set,但是可以自定义键值对,因此更加灵活。
示例代码如下:
let arr = [1, 2, 3, 2, 1];
let map = new Map();
let newArr = [];
for(let i = 0; i < arr.length; i++){
if(!map.has(arr[i])){
map.set(arr[i], true);
newArr.push(arr[i]);
}
}
console.log(newArr); //输出[1, 2, 3]
结束语
以上便是js数组去重常见的七种方法汇总。在实际开发中,我们可以根据具体业务需求和数组长度等因素来选择适合的去重方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js数组去重常见的方法汇总(7种) - Python技术站