JavaScript--Map和Set介绍
来源:互联网 发布:python怎么滤波图片 编辑:程序博客网 时间:2024/05/18 13:07
在学习JavaScript的数据类型的时候,比较陌生的是Map和Set。[Map和Set是JavaScript的数据类型]
Map
在学习Map的时候,你可以把Map类比为OC里面的Dictionary。在Javascript中,默认的对象表示方式是在"{""}"中存储键值对,比方说{"name":"wu","age":23},但是对象里面的Key必须是字符串,这使得其有了局限性,因为数字(比如学号)等其他数据类型也应该可以作为对象的Key。所以在ES6规范中引入了Map。[并不是所有的浏览器都支持ES6]
eg:
var m = new Map([["JayZhou,37"],["AndyLiu,56"]]);m.get("JayZhou"); //-->37
初始化Map需要一个二维数组,这与OC里面Dictionary的初始化是有区别的,但是二者的功用差不多
下面是申明一个空的Map,再对其进行操作:
var m = new Map();m.set(37,"me");//添加一个键值对m.get(37); <span style="white-space:pre"></span>//-->"me"m.has("AndyLiu");//判断该Map里面是否包含键"AndyLiu" flasem.delete("JayZhou");//删除
Set
Set和Map类似,也是一组集合,但是Set不存储Value。并且Set中不应该出现重复的Key。
eg:
var set1 = new Set(); //空的Sets.add(2);//添加Key 2s.add(3);//添加Key 3s.add("2");//添加Key "2"s.add(2); //添加Key 2 无效果 s{2,3,"2"}
var set2 = new Set([1,2,3]);s.add(2);s.delete(2);
iterable
for...of
就像OC里面array、set、dictionary统称集合一样,JavaScript里面Map、Set、Array都属于iterable类型。iterable类型统一用for...of循环遍历,Array可以采用下标遍历。
for...of是ES6引入的,并不是所有的浏览器都支持。[为啥不用for...in遍历,for...in遍历的是对象的属性名称,for...of遍历的是遍历的是集合本身的元素]
eg:
var map1 = new Map([["name","wu"],["age",23]]);for (var x of map1) {//遍历map1,map1是2维数组,x为数组alert(x[0]); //x[0]为key,x[1]为value}var array1 = ["name",23,"age"];array1.great = 3;//数组实际也是一个对象,为array1添加一个新属性for (var x of array1) {//遍历array1,array1是1维数组alert(x);//x分别为"name"、23、"age"}for (var x in array1) {alert(x);//x分别为"name"、23、"age"、3}
forEach
iterable内置的方法,参数为一个函数,forEach其实是一个高阶函数,对iterable进行遍历
eg:
var array1 = ["1","2"];array1.forEach(function (element,index,array){alert(element);//当前的元素"1","2"alert(index);//当前的索引0,1alert(array);//自身});
var set1 = new Set([1,2]);set1.forEach(function (element,sameElement,set){alert(element);//当前的元素alert(sameElement);//当前的元素,set是没有index的alert(set);//自身});
var map1 = new Map([["name","wu"],["age",23]]);map1.forEach(function (value,key,map){alert(value); //当前的键值"wu",23alert(key);//当前的键"name","age"alert(map);//自身});
forEach里面的function的参数可以省略你不想要的。
1 0
- JavaScript--Map和Set介绍
- Javascript Map和Set
- JavaScript---map和set
- JavaScript --Map和Set, Iterable
- JavaScript之Set 和 Map
- list map和set的介绍
- STL容器 -map和set接口介绍
- JavaScript学习笔记六:Map和Set
- Map和Set,javascript新的数据类型
- JavaScript之Set和Map数据结构
- JavaScript(三)Map和Set
- javascript ES6 Map 和Set结构总结
- 07-javascript map&set
- Set和List的区别,List和Map的区别(介绍List,Set,Map对象结构
- List,Set和Map的介绍和使用
- Javascript中Map和Set的理解和使用
- 介绍java中list,set和map 的区别
- JavaScript学习笔记 CH.2 SEC.7 map和set
- Gradle笔记——构建基础
- Spring进阶之路(2)-ApplicationContext容器以及事件机制
- java 知识体系
- Visual Studio配置VLFeat库
- 读《深入php面向对象、模式与实践》有感(一)
- JavaScript--Map和Set介绍
- V-Play 文档翻译 App
- Codeforces #284 C. Crazy Town 几何
- fragment生命周期
- ZOJ-3780-Paint the Grid Again【11th浙江省赛】
- Android上面做Flash播放器
- HDU 3790 最短路径问题(双重Dijkstra算法)
- Mybatis入门实例(优化版本)(2) - SSM(二)
- 菜鸟成长记录——2015-2016半年总