怎么用js去除一组数据中重复的元素?

怎么去除一组数据中重复的元素?

function removeDuplicates(array) {
    var temp={}
    var result =[]
    for (let i = 0; i < array.length; i++) {
      if (!temp[array[i]]) {  //如果设置当前元素的值不为true
        temp[array[i]] = true //设置当前元素的值为true
        result.push(array[i])//推进新数组
      }  
    }
    // console.log(temp);
    return result;
  }
var arr = [1,0,1,3,45,6,2,3,4,2,8,9,0,2]
console.log(removeDuplicates(arr));

根据对象的方法来解答,将数组的元素作为对象的key,第一次出现这个key,就把这个key的value赋值为true,后面数组再出现这个元素就可以访问到true这个属性。非常巧妙的解决了这个问题。

下面是打印出来的temp对象和去重的结果,方便理解。

{
  '0': true,
  '1': true,
  '2': true,
  '3': true,
  '4': true,
  '6': true,
  '8': true,
  '9': true,
  '45': true
}
[
  1, 0, 3, 45, 6,
  2, 4, 8,  9
]
posted @ 2023-08-03 22:55  侠客小飞  阅读(47)  评论(0编辑  收藏  举报