ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Javascript Map 转换成对象与数组

2020-06-05 23:07:33  阅读:372  来源: 互联网

标签:Map console log 转换成 Javascript map1 let key


Map

map的主要特点在于,除了字符串之外,它还可以使用其他类型来作为键值对的键。

Map的实例化

所有实现了iterable接口的双元素数组结构都可以作为Map构造的参数。

如数组,map,set

//数组作为实例化参数
let params = ['key1', 'value1']
let map = new Map([params])

//map作为实例化参数
let map2 = new Map([['a', 1], ['b', 2]])
let map3 = new Map(map2)
console.log(map3);

//set作为实例化参数
let set = new Set([['a', 1], ['b', 2]]);
let map4 = new Map(set)
console.log(map4)

API:

基本操作

  • set(key,value) 返回map实例,如果已经存在key
  • get(key,value) 读取key对应的键值,如果找不到就返回undefined
  • size
  • has(key) 返回布尔类型,是否含有对应键
  • delete(key) 删除某个键,返回布尔类型
  • clear()
let map1 = new Map();
let key = 'aaa';
let obj = { "a": 1 }

//添加键值对
map1.set(key, 111)
map1.set(obj, 222)

//是否含有指定键
let bool = map1.has(key)
console.log(bool)//true

//拿到指定键对应的值
console.log(map1.get(key))//111

//删除某个键。返回布尔值
console.log(map1.delete(obj))

//清除
map1.clear()
console.log(map1)

遍历

  • keys() 拿到一个迭代器对象,由键组成
  • values() 由值组成的迭代器对象
  • entries() 键值对数组组成的迭代器对象
  • forEach() 遍历
for (let i  of map1.keys()) {
   console.log(i)
}

for (let i  of map1.values()) {
   console.log(i)
}

for (const i of map1.entries()) {
   console.log(i)
}

map转数组/map转对象

//map 转数组
let m = new Map([['a1', 111], ['a2', 222]])
console.log([...m])
/*
[Array(2), Array(2)]
0: (2) ["a1", 111]
1: (2) ["a2", 222]
*/

//map转对象,只有map的键是字符串的时候才成立
let m1 = new Map()
let o = {"okey":{"vkey":"value"}}
let o1 = {}

for(let i in o){
    m1.set(i,o[i])
}

for(let [k,v] of m1){
    o1[k] = v
}

console.log(o1)

标签:Map,console,log,转换成,Javascript,map1,let,key
来源: https://www.cnblogs.com/ltfxy/p/13052746.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有