一个有重复元素的数组,只保留不重复的元素,去掉所有重复的元素

思路:1.先获取去重后的数组oneArr,遍历原数组arr,统计去重后的数组元素的出现次数——次数数组countArr(与去重后的数组的索引值 相同,从而一一对应)

           2.遍历次数数组countArr的索引值,判断如果当前索引值对应的数值为1,则将oneArr数组中当前索引对应的元素添加到结果数组resArr中

           3.返回resArr

 1 function solution(arr){
 2     let oneArr = [...new Set(arr)]
 3     let countArr = Array(oneArr.length)
 4     let resArr = []
 5     countArr.fill(0)
 6     for(let i of arr){
 7         for(let j in oneArr){
 8             if(i === oneArr[j]){
 9                 countArr[j] ++
10             }
11         }
12     }
13     
14     for(let i in countArr){
15         if(countArr[i] === 1){
16             resArr.push(oneArr[i])
17         }
18     }
19     return resArr
20 }
21 
22 let arr = [1,2,3,3,4,5,5,5,6,4]
23 console.log(solution(arr))

 

posted @ 2020-09-18 16:10  xuwennn  阅读(479)  评论(0编辑  收藏  举报