您好,欢迎访问一九零五行业门户网

JavaScript中的Map、Set实例详解

map
 map是一组键值对的结构,具有极快的查找速度。
 map的定义。
//空map设值key-valuevar m = new map(); m.set(xiaoming,99); m.set(xiaohong,66);//构造参数传key-valuevar m = new map([['xiaoming', 99], ['xiaohong', 66]]);
map中的方法
var m = new map(); // 空mapm.set('xiaoming', 99); // 添加新的key-valuem.has('xiaoming'); // 是否存在key 'xiaoming': truem.get('xiaoming'); // 99m.delete('xiaoming'); // 删除key 'xiaoming'm.get('xiaoming'); // undefined
对一个key重复设值,后面的值会将前面的值覆盖。
var m = new map(); m.set('xiaoming', 99); m.set('xiaoming', 98); m.get('xiaoming'); // 98
set
 set和map类似,但set之存储key,且key不重复。
 set的创建。
var s1 = new set(); // 空sets1.add(1); s1.add(2); s1.add(3);var s2 = new set([1, 2, 3]); // 含1, 2, 3
插入重复的值,set会将重复的值进行过滤
 s =  set([1, 2, 33>>s; s.delete(3); >>s;
map及set的遍历
 array可以采用下标进行循环遍历,map和set就无法使用下标。为了统一集合类型,es6标准引入了iterable类型,array、map、set都属于iterable类型。
 具有iterable类型的集合可以通过新的for ... of循环来遍历。
var a = ['a', 'b', 'c'];var s = new set(['a', 'b', 'c']);var m = new map([[1, 'x'], [2, 'y'], [3, 'z']]);for (var x of a) { // 遍历array    alert(x); }for (var x of s) { // 遍历set    alert(x); }for (var x of m) { // 遍历mapalert(x[0] + '=' + x[1]); }
更好的遍历:foreach
 foreach是iterable内置的方法,它接收一个函数,每次迭代就自动回调该函数。
var a = ['a', 'b', 'c']; a.foreach(function (element, index, array) {// element: 指向当前元素的值// index: 指向当前索引// array: 指向array对象本身    alert(element); });
set与array类似,但set没有索引,因此回调函数的前两个参数都是元素本身:
var s = new set(['a', 'b', 'c']); s.foreach(function (element, sameelement, set) {     alert(element); });
map的回调函数参数依次为value、key和map本身:
var m = new map([[1, 'x'], [2, 'y'], [3, 'z']]); m.foreach(function (value, key, map) {     alert(value); });
以上就是javascript中的map、set实例详解的详细内容。
其它类似信息

推荐信息