1.遍历+indexof
思路:创建新素组,遍历需要去重的数组,通过indexOf查找arr2里的值,把没有的值添加到新数组
(此方法无法对NaN去重)
indexOf() 方法:返回匹配到值的索引,没有则返回-1
let arr1 =[1,2,3,3,3,4,4,5]
let arr2=[]
for(let i of arr1 ){
if(arr2.indexOf(i)===-1){
arr2.push(i)
}
}
2.includes 和indexof一样,但是他可以判断NaN
3.双重for循环去重
原理 两两比较如果相等的话就删除第二个
例如: 1,2,3,4,5,3,7,8
先让第一个1 即arr[0]与后面的一个个比较 如果后面的值等于arr[0] 删除后面的值
第一次结束后的结果是 1,2,3,4,5,7,8 删除了后面所有的3
同理 第二次 第三会删除与自己相同的元素
4.利用Set()+Array.from()
const arr = [1, 2, 2,
'abc'
,
'abc'
,
true
,
true
,
false
,
false
, undefined, undefined, NaN, NaN]
- Set对象:是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即Set中的元素是唯一的。
- Array.from() 方法:对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
const result = Array.from(
new
Set(arr))
console.log(result)
// [ 1, 2, 'abc', true, false, undefined, NaN ]
标签:arr,Set,false,NaN,arr2,数组 来源: https://www.cnblogs.com/chuge/p/16505452.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。