以下是我个人对map对象的一些理解,如有不足之处请多批评指正:
1、map可以传入一个可遍历的对象
2、map传入的数组必须是一个可遍历的对象,不能是任意值。
3、map必须传入key、value的形式 example:[[k,v],[k,v]
4、map的key可以是任意值 函数、对象...
5、map添加数据不是用add而是用set
6、map的set方法可以用作修改
7、使用删除或查找等方法都是使用map的索引,而不是值
8、使用forEach遍历时,第一个参数是value,第二个是key
let map = new Map([['hello', 'world'],['name', 'Joky']]) console.log(map) // Map(2) {"hello" => "world", "name" => "Joky"} // 添加 map.set('age', 18) console.log(map) // Map(3) {"hello" => "world", "name" => "Joky", "age" => 18} // 修改 map.set('age', 12) console.log(map) // Map(3) {"hello" => "world", "name" => "Joky", "age" => 12} // 删除 map.delete('age') console.log(map) // Map(2) {"hello" => "world", "name" => "Joky"} // 全部清空 map.clear() console.log(map) // Map(0) {} map.set('hello', 'world').set('name', 'Joky').set('age', 18) // 获取map的键值对个数 console.log(map.size) // 3 // 判断某个值是否存在 console.log(map.has('hello')) // true // 给定键获取值 console.log(map.get('hello')) // world // 获取map的所有键 console.log(map.keys()) // MapIterator {"hello", "name", "age"} // 获取map的所有值 console.log(map.values()) // MapIterator {"world", "Joky", 18} // 获取map的键值对 console.log(map.entries()) // MapIterator {"hello" => "world", "name" => "Joky", "age" => 18} // map的遍历 map.forEach((v, k) => { console.log(v, k) // world hello // Joky name // 18 "age" }) for (let [k, v] of map) { console.log(k, v) // hello world // name Joky // age 18 } // 函数键的演示 function o () {} map.set(o, '我是一个函数') console.log(map) // Map(4) {"hello" => "world", "name" => "Joky", "age" => 18, ƒ => "我是一个函数"}
评论一下?