针对“js数组去重的方法总结”这个主题,我将为大家详细讲解一些js数组去重的方法。
方法一:使用Set去重
Set 是 ES6 特性之一,可以用来去重。代码示例如下:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
解释:使用 new Set()
去除数组中的重复元素并将其赋值给一个新的 Set 对象,然后将该对象转换为数组。
方法二:使用 filter 方法
使用 filter 方法可快速去除重复元素,代码示例如下:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.filter((item, index, array) => array.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
解释:使用 indexOf 方法查找元素在数组中的第一个位置,如果当前位置等于该元素的位置,则说明该元素是第一次出现,否则就是重复元素,这时候可以使用 filter 方法去掉。
除了以上两种方法外,还有一些其它的方法,如使用 Map,使用 reduce,使用 forEach 等。
方法三:使用 Map
使用 Map 对象去重的方法较为简单,代码示例如下:
let arr = [1, 2, 3, 3, 4, 5, 5];
let map = new Map();
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if(!map.has(arr[i])){
map.set(arr[i], true);
uniqueArr.push(arr[i]);
}
}
console.log(uniqueArr); // [1, 2, 3, 4, 5]
解释:使用 Map 对象的键名去重,在循环中使用 has 方法判断是否已经存在,如果不存在则向数组中 push 该元素的值。
方法四:使用 reduce
使用 reduce 迭代器可快速去重,代码示例如下:
let arr = [1, 2, 3, 3, 4, 5, 5];
let uniqueArr = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
解释:使用 reduce 方法循环数组,prev 表示上一次迭代的结果值,cur 表示当前元素的值,通过判断 prev 数组中是否包含 cur,如果包含说明已经存在该元素,则直接返回 prev 数组,如果不包含则将该元素 push 到 prev 数组中以完成去重。
以上就是我总结的 js 数组去重的方法,希望对大家有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js数组去重的方法总结 - Python技术站