let arrV = [1, 2, 3, 1, 2, 3, 1, 2, 2,null,null]
// 去重方法1
// 利用set数据结构的特点,集合中不能出现重复元素,所以生成的数组一定不会重复
// console.log([...new Set(arrV)])
// console.log(Array.from(new Set(arrV)))
// 去重方法2
// 经典去重
// for(let i = 0;i < arrV.length;i++){
// for(let j = i+1; j < arrV.length ;j++){
// if(arrV[i] === arrV[j]){
// arrV.splice(j,1)
// j--
// }
// }
// }
// console.log(arrV)
// 去重方法3
// 利用filter的返回值,true则返回当前元素,false则不返回,最后得到一个新数组
// 用indexOf只返回第一个被检索到的元素的索引值,如果重复元素,被检查时,返回的不是当前索引就不作为新数组的元素返回出去
// console.log(arrV.filter((item, index, arr) => {
// return arr.indexOf(item, 0) === index
// }))
// 去重方法4
// let result = []
// arrV.forEach((item)=>{
// if (result.indexOf(item) === -1){
// result.push(item)
// }
// })
// console.log(result)
// 去重方法5
// reduce结合includes
// reduce将过程汇总为一个数组,如果空数组中有,则原路返回,没有则添加
// console.log(arrV.reduce((parent,item) => {
// return parent.includes(item)?parent:[...parent,item];
// }, []))
数组去重js
最新推荐文章于 2024-07-08 16:22:29 发布