什么是字典
字典与集合类似,字典也是一种存储唯一值的数据结构,但是它是以键值对的形式存储。
ES6中有字典,名为Map。字典常用操作:键值对的增删改查
let m = new Map();
//增
m.set('a', 'aa');
m.set('b', 'bb');
//删
m.delete('a');
m.clear();
//改
m.set('2020-10-12', '12');
m.set('2020-10-11', '11');
//查
m.get('a');
//遍历
for(let key of m.keys()){
console.log(key);
}
for (let value of m.values()) {
console.log(value);
}
for (let [key,value] of m.entries()) {
console.log(key, value);
}
应用
1、两个数组的交集(力扣349)
var intersection = function(nums1, nums2) {
let map = new Map();
let res = [];
nums1.forEach(n => {
map.set(n, true);
});
nums2.forEach(n => {
if(map.get(n)){
res.push(n);
map.delete(n);
}
})
return res;
};
2、两数之和(力扣1)
时间复杂度O(n)
空间复杂度O(n)
/**
* @param {number[]} nums
* @param {number} target
* @return {number[]}
*/
var twoSum = function(nums, target) {
let map = new Map();
for(let i = 0; i < nums.length; i++){
let n = target - nums[i];
if(map.has(n)){
return [map.get(n), i];
}
map.set(nums[i], i);
}
return []
};