找出数组 arr 中重复出现过的元素(不用考虑返回顺序)

 

// 找出数组 arr 中重复出现过的元素(不用考虑返回顺序)

 

// 举例:
// 输入:
let arr = [1, 2, 4, 4, 3, 3, 1, 5, 3]

 

// 输出:
// [1, 3, 4]
var findRepeat = (arr) =>{
  let map = new Map()
  let res = []
  for(let num of arr){
    map.set(num, (map.get(num) || 0)+1)
  }
  map.forEach((val, key)=>{
    if(val > 1) {
      res.push(key)
    }
  })
  return res
}
console.log(arr, findRepeat(arr))
var findRepeat = (arr) =>{
  arr.sort((a, b)=> a - b)
  let n = arr.length
  let newArr = new Set()
  for(let i = 1; i < n ; i++){
    if(arr[i] == arr[i - 1]){
      newArr.add(arr[i])
    }
  }
  return new Array(...newArr)
}

console.log(arr, findRepeat(arr))

 

posted @ 2021-08-04 08:42  尖子  阅读(322)  评论(0编辑  收藏  举报