map和set

111 阅读1分钟

今天做了一套去重的题,分别用map和set做了一下,特此记录

如何实现数组去重? 假设有数组 array = [1,5,2,3,4,2,3,1,3,4] 你要写一个函数 unique,使得 unique(array) 的值为 [1,5,2,3,4] 也就是把重复的值都去掉,只保留不重复的值。

1.使用set

let array = [1,5,2,3,4,2,3,1,3,4]
let myset = new Set()
function unique(array){
    for(let i=0;i<array.length-1;i++)
    myset.add(array[i]);
}

unique(array);
console.log(Array.from(myset));

set并不是数组,最后使用Array.from(likearray)转化为数组 set.add 2.

let array = [1,5,2,3,4,2,3,1,3,4]
let result = new Array();
let hashmap = new Map();
for(let i=1;i<array.length;i++){
    if(hashmap.has(array[i]))
    hashmap.set(array[i],true)
    else 
    {
        hashmap.set(array[i], false);  
        result.push(array[i]);
    }
}
console.log(result);

map是以哈希表的形式储存数据 map.set