JS实现数组去重的几种方法

JS实现数组去重的几种方法,第1张

for循环 + indexOf()方法 + push()方法

解析: 通过 for循环 遍历原始数组,然后通过indexOf() 方法判断元素的索引是否重复存在,如果没有就通过 push() 方法将其添加到新数组当中

let arr = ['aa','bb','cc','aa'];
let newArr = [];
for(var i = 0; i < arr.length; i++) {
	// indexOf()方法返回在数组中找到给定元素的第一个索引,若不存在,返回 -1
    // 判断是否在newArr数组中存在  1是存在,-1是不存在
	if(newArr.indexOf(arr[i]) == -1) {
	  // push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
      // 如果不存在,就追加到newArr里
		newArr.push(arr[i]);
	}
}
console.log(newArr)   // ['aa', 'bb', 'cc']
forEach循环 + indexOf() + push()

解析: 通过 forEach循环 遍历原始数组,然后通过indexOf() 方法判断元素的索引是否重复存在,如果没有就通过 push() 方法将其添加到新数组当中

let arr = ['aa','bb','cc','aa'];
let newArr = [];
arr.forEach(item => {
	// item 代表arr数组里的每一项
	if(newArr.indexOf(item) == -1)
	newArr.push(item);
})
cosnole.log(newArr);  // ['aa', 'bb', 'cc']
forEach循环 + includes()方法+ push()方法

解析: 通过 forEach循环 遍历原始数组,然后通过includes() 方法判断是否包含指定的子字符串,如果没有就通过 push() 方法将其添加到新数组当中

let arr = ['aa','bb','cc','aa'];
let newArr = [];
arr.forEach(item => {
	// includes()方法用于判断字符串是否包含指定的子字符串,有则返回true,无则返回false;includes() 方法区分大小写。
	if(!newArr.includes(item))
	newArr.push(item);
})
console.log(newArr);  // ['aa', 'bb', 'cc']
ES6的set()方法(推荐

解析: 通过 ES6set()方法,set() 类似 数组,它的所有的成员都是唯一

let arr = ['aa','bb','cc','aa'];
// set 用于数组去重,成员是唯一的,不可以重复
let  newArr = [...new Set(arr)];
console.log(newArr);   // ['aa', 'bb', 'cc']
Array.from()方法 + set()方法(推荐

解析: ES6为Array添加了from函数用来将其他对象转换成数组。

let arr = ['aa','bb','cc','aa'];
let newArr = Array.from(new Set(arr));
console.log(newArr); // ['aa', 'bb', 'cc']

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1323163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存