size00.参考网站

01.用途

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

02.map和objects的区别

  • 一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值。
  • Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。
  • Map 的键值对个数可以从 size 属性获取,而 Object 的键值对个数只能手动计算。
  • Object 都有自己的原型,原型链上的键名有可能和你自己在对象上的设置的键名产生冲突。

001.map的基本使用 - 图1

03.Map 实例的属性和方法

  1. size:获取成员的数量
  2. set:设置成员 key 和 value
  3. get:获取成员属性值
  4. has:判断成员是否存在
  5. delete:删除成员
  6. clear:清空所有
  1. const map = new Map();
  2. map.set('aaa', 100);//设置成员 key 和 value
  3. map.set('bbb', 200);
  4. map.size // 2 获取成员的数量
  5. map.get('aaa') // 100 获取成员属性值
  6. map.has('aaa') // true 判断成员是否存在
  7. map.delete('aaa') 删除成员
  8. map.has('aaa') // false
  9. map.clear()

04.Map 实例的遍历方法

  1. keys():返回键名的遍历器。

  2. values():返回键值的遍历器。

  3. entries():返回所有成员的遍历器。

  4. forEach():遍历 Map 的所有成员。 ```javascript const map = new Map(); map.set(‘aaa’, 100); map.set(‘bbb’, 200);

for (let key of map.keys()) { console.log(key); } // “aaa” // “bbb”

for (let value of map.values()) { console.log(value); } // 100 // 200

for (let item of map.entries()) { console.log(item[0], item[1]); } // aaa 100 //…

  1. <a name="83886eff"></a>
  2. # 05 leetcode例题
  3. ```css
  4. 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
  5. 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
  6. 你可以按任意顺序返回答案。
  7. 示例 1:
  8. 输入:nums = [2,7,11,15], target = 9
  9. 输出:[0,1]
  10. 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
  11. 示例 2:
  12. 输入:nums = [3,2,4], target = 6
  13. 输出:[1,2]
  14. 示例 3:
  15. 输入:nums = [3,3], target = 6
  16. 输出:[0,1]

题解 通俗理解 走到哪匹配到哪里

  1. 1. 解题思路
  2. nums想象成相亲者
  3. target想象成匹配条件
  4. 用字典建立一个婚姻介绍所,存储相亲者的数字和下标
  5. 解题步骤:
  6. 新建一个字典作为婚姻介绍所
  7. nums里的值,逐个来介绍所找对象,没有合适的就先登记着,有合适的就牵手成功
  8. 2. 代码实现
  9. var twoSum = function(nums, target) {
  10. const map = new Map()
  11. for(let i = 0; i < nums.length; i+=1) {
  12. const n = nums[i]
  13. const n2 = target - n
  14. if(map.has(n2)) {
  15. return [map.get(n2), i]
  16. } else {
  17. map.set(n, i)
  18. }
  19. }
  20. };
  21. 3. 复杂度分析
  22. 时间复杂度O(n), 空间复杂度O(n)