javascript中的Map和Set用法,以及for in,for of ,forEach循环用法
2015-09-29 11:44
746 查看
/** * ES6及以上的浏览器支持Map和Set * 和js对象不同,js对象的key部分必须为字符串,而Map的key可以为字符串、数字、null、""等 * 和java中的Map一样,重复放入key会覆盖一个对应的value * **/ //创建方法一:直接用二维数组 var map = new Map([['java', 95], ['c', 75], ['python', 85]]); //创建方法二: var p = new Map(); //给map赋值 p.set("name","hello"); p.set(0.1,"131"); p.set("age",null); p.set(null,"age"); p.set( "","11"); p.set("del","will be deleted"); console.log(p.get(null));//age console.log(p.get(""));//11 console.log(p.get("name"));//hello console.log(p.get('0.1'*1));//131 console.log(p.get("age"));//null if(p.has("del")){ p.delete("del");//删除 } console.log(p.get("del"));//undefined /*** * Set:没有key,不能直接取值 * */ //创建Set方法一:直接赋初始值 var s1 =new Set(["a","b","c","c"]); //创建Set方法二:用add('')添加参数 var set = new Set(); set.add("a"); set.add("b"); set.add("c"); set.add("d"); set.add("e"); set.delete("c"); /*** *Map和Set的遍历问题: * ***/ //for...in...循环: var arr = [1,3,4]; //此处相当于给arr添加了一个叫attr的属性,原来的数组不变 arr.attr="abc"; for(var a in arr ){ console.log(a);//0 1 2 } // for...of...循环:只能用于对数组,Map和Set遍历等属于iterable的集合.遍历对象报错 for(var a of arr){ console.log(a);//1 3 4 } //可以看到for...in...循环得到的是下标,实际遍历的是属性名称,数组的下标作为属性 //所以遍历数组,Map,或者Set的值可以用 for...of... var map2 = new Map([["name","hello"],["age",21],["sex","man"]]); for(var a of map2){ //发现a其实是个数组 console.log(a); //进一步解析数组得到key和value部分 console.log("key="+a[0]+" value="+a[1]); } var set2 = new Set([1,"d",3]); for(var a of set2){ console.log(a); } /*** * 使用for...in已经能够方便的遍 b509 历Map和Set或者Array * 但是还有更加简洁的方法遍历,使用forEach,注意同样最好是ES6以上版本 * arr2.forEach(function(item,index,array){ * 迭代数组时候 * item: 迭代的每一项元素 * index: 元素下标 * array:数组本身 * }) * **/ var arr2 = [1,3,4]; arr2.forEach(function(item,index,array){ console.log("item: "+item+" index: "+index+" array: "+array); }) var map3= new Map([["name","hello"],["age",21],["sex","man"]]); //对于Map要两个参数就够了,注意第一个参数对应的是value而不是key map3.forEach(function(value,key){//两个参数即可 console.log("key:"+key+" value: "+value); }) var set3 = new Set([1,"d",3]); //Set只要一个参数就够 set3.forEach(function(item){ console.log("item: "+item); })
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- IE8开发人员工具教程(二)
- 在flex中执行一个javascript方法的简单方式
- Flex结合JavaScript读取本地路径的方法
- PowerShell中执行Javascript的方法示例
- javascript asp教程第六课-- response方法
- javascript asp教程More About Recordsets
- javascript asp教程第十二课---session对象