ES6新数据结构Map功能如何用
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍"ES6新数据结构Map功能如何用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"ES6新数据结构Map功能如何用"文章能帮助大家解决问题。新数
千家信息网最后更新 2025年01月18日ES6新数据结构Map功能如何用
这篇文章主要介绍"ES6新数据结构Map功能如何用"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"ES6新数据结构Map功能如何用"文章能帮助大家解决问题。
新数据结构Map
JavaScript中对象的本质是键值对的集合,但是键只能是字符串。为了弥补这种缺憾,ES6带来了一种新的数据结构Map。Map也是键值对的集合,只是键不仅可以是字符串还可以是其他数据类型,比如:对象(是不是很神奇)。请看下面例子。
var m = new Map();var ul = document.getElementsByTagName('ul');m.set(ul,'hi');console.log(m.get(ul)); //hi
对于Map的操作有以下几个:
m.set(ul,'content'); //为Map增加成员m.get(ul);//获取键 ul对应的值m.has(ul);//返回布尔值,判断是否含有键 ulm.delete(ul);//删除键 ul,成功返回true,失败返回falsem.size //返回m长度m.clear(); //清除m所有成员
直接为Map赋初值的方法:
var m = new Map([[li_1,'hello'],[li_2,'world']]);
接受的参数为一个数组,数组内的成员是表示一个一个键值对的数组。如果你蒙了,请看上行代码的实际执行情况:
var li_1 = document.getElementsByTagName('li')[0];var li_2 = document.getElementsByTagName('li')[1];var list = [ [li_1,'hello'] , [li_2,'world'] ];var m = new Map();list.forEach( ([key,value]) => m.set(key,value) );console.log(m.get(li_1)); //hello
如果对一个键多次赋值,后面的值会覆盖前面的值。值得注意的是,当键是对象时,必须是引用相同,才认为键是相同的。下面介绍Map的遍历方法。
var ul = document.getElementsByTagName('ul');var li_1 = document.getElementsByTagName('li')[0];var li_2 = document.getElementsByTagName('li')[1];var list = [ [li_1,'hello'] , [li_2,'world'] ];var m = new Map();list.forEach( ([key,value]) => m.set(key,value) );for ( let key of m.keys() ){ console.log(key);}for ( let val of m.values() ){ console.log(val);}for ( let item of m.entries() ){ console.log(item[0],item[1]);}for ( let [key,val] of m.entries() ){ console.log(key,val);}m.forEach( function( val , key , ul ){ console.log( this ); //ul console.log( val , key);} , ul ); // forEach的第二个参数用于改变匿名函数中this指向
Map与其他数据类型的转换
Map转数据的最简单方式是使用 ... 扩展运算符。例如:
console.log( ...m ); //[li, "hello"] [li, "world"]
Map转对象时,必须所有键都是字符串,使用Object.create()函数。Map转JSON时,要求也要求所有键都是字符串,使用JSON.Stringify()函数。
关于"ES6新数据结构Map功能如何用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
数据
数据结构
结构
字符
字符串
对象
功能
函数
成员
数组
方法
知识
相同
参数
实际
类型
行业
请看
不同
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
计算机二级网络技术的缺点
家庭网络安全建议
软件开发怎样盈利
access数据库的查询是
成都市网络技术应用选择题
国外有名的网络安全网站
建邺区软件开发专业服务
漯河哪里学计算机网络技术教程
架设ssh服务器
打开数据库后怎么修改装载状态
群控用的什么服务器
软件开发属于哪类税目
web软件开发代码教程
广东校园的服务器地址
计算机网络技术的研究目标
华为在欧洲总部开网络安全中心
软件开发测试前景
服务器开不开机
智慧党建云平台软件开发
网络安全保密开展情况
公司服务器ip地址被占用
网络安全保险可靠吗
计算机网络安全调查报告
域控服务器备用
千兆服务器网速
3级网络技术怎么样
深圳网络技术怎么样
井陉软件开发
广州科技互联网为什么不好
共享充电线的软件开发商