针对“javascript数组去重的方法汇总”的话题,我将为您提供完整的攻略,并给出两条示例说明。
一、问题背景
在javascript开发中,很常见的问题是如何从一个数组中找出不重复的数据。数组去重在实际开发中非常有用,例如:从数据库中查询数据后想要去除相同项展示给用户,或者需要合并两个数组并去除重复项。本文将为大家总结一下常用的去重方法。
二、方法汇总
1.使用Set
ES6中提供了一种新的数据结构Set,其中属性值唯一,可以很方便地实现数组去重。具体代码如下:
let arr = [1,2,3,4,5,5,6,6,7];
let newArr = [...new Set(arr)];
console.log(newArr); //[1, 2, 3, 4, 5, 6, 7]
2.使用数组遍历
使用数组的indexOf()方法或者ES6的includes()方法进行遍历,遇到重复的删除此项。具体代码如下:
let arr = [1,2,3,4,5,5,6,6,7];
function unique(arr) {
let newArr = [];
for(let i=0;i<arr.length;i++) {
if(newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique(arr)); //[1, 2, 3, 4, 5, 6, 7]
3.使用对象键值对
遍历数组,以元素值为对象的键值对应到对象中,如对象存在该键,则说明重复,否则将该键值对应到对象中。最后返回键值数组即可。具体代码如下:
let arr = [1,2,3,4,5,5,6,6,7];
function unique(arr) {
let obj = {};
let newArr = [];
for(let i=0;i<arr.length;i++) {
if(!obj[arr[i]]) {
obj[arr[i]] = true;
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(unique(arr)); //[1, 2, 3, 4, 5, 6, 7]
4.使用reduce函数
使用reduce函数,对出现过的元素存到obj中,并返回不重复的元素到newArr中。具体代码如下:
let arr = [1,2,3,4,5,5,6,6,7];
function unique(arr) {
let newArr = arr.reduce((prev,cur) => {
if(!prev.includes(cur)) {
prev.push(cur);
}
return prev;
},[]);
return newArr;
}
console.log(unique(arr)); //[1, 2, 3, 4, 5, 6, 7]
三、总结
本文介绍了javascript数组去重的四种方法:使用Set,使用数组遍历,使用对象键值对,使用reduce函数。具体使用哪种方法,取决于情况和个人喜好。
以上就是本文的内容,希望能够对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript数组去重的方法汇总 - Python技术站