Map 对象,js
- //// Map 对象 ,键值对,记得插入顺序,可以使用对象作键,没有默认值
new Map() //创建新的 Map 对象。
let map = new Map([ ["name", 12], ["age", 12], ]); let map1 = new Map() map1.set('name',12) map1.set('age',12) // 这两种定义等价,可以看为map是一种特殊格式的二维数组,lodash把这种格式叫做 pairs ,array相关有fromPairs(arr)方法,把这种数组转为对象 let arr = Array.from(map) let obj = fromPairs(arr) console.log(map,map1,arr,obj); // Map(2) {"name" => 12, "age" => 12} Map(2) {"name" => 12, "age" => 12} (2) [Array(2), Array(2)] {name: 12, age: 12}
set() //为 Map 对象中的键设置值。
get() //获取 Map 对象中键的值。
let map = new Map([ ["name", 12], ["age", 12], ]); map.set('age',13) console.log(map.get('age')) // 13
entries() //返回 Map 对象中键/值对的数组。
let map = new Map([ ["name", 12], ["age", 12], ]); map.set('age',13) console.log(map.entries()) // MapIterator {"name" => 12, "age" => 13} 这里并不是标准意义的数组,有可迭代的标识
keys() //返回 Map 对象中键的数组。
let map = new Map([ ["name", 12], ["age", 12], ]); let keys = map.keys() console.log(keys,Array.from(keys)) // MapIterator {"name", "age"} // MapIterator {} (2) ["name", "age"] 执行Array.from()可以将迭代器转为春数组,但是迭代器就被执行而清空了
values() //返回 Map 对象中值的数组。
//同上
size //获取 Map 对象中某键的值。
let map = new Map([ ["name", 12], ["age", 12], ]); console.log(map.size) // size是属性而非方法 // 2
clear() //删除 Map 中的所有元素。
delete() //删除由键指定的元素。
has() //如果键存在,则返回 true。
forEach() //为每个键/值对调用回调。
let map = new Map([ ["name", 12], ["age", 12], ]); map.forEach((item,idx)=>{ console.log(item,idx,',') }) // 12 'name' ',' // 12 'age' ','
forof() //遍历map,同forEach等价,不同的是key和val的顺序
let map = new Map([ ["name", 12], ["age", 12], ]); map.forEach((val, key) => { console.log(val, key, ","); }); for (const [key, val] of map) { console.log(val, key, ","); } // 12 'name' ',' // 12 'age' ','

浙公网安备 33010602011771号