今天做了一套去重的题,分别用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