【Javascript学习笔记】【02Map && Set && iterable类型】

目录


MAP

Map是一组键值对的结构,具有极快的查找速度。
.set()添加key,value
.has()是否存在该key
.get()获取key对应值
.delete()删除

var m = new Map(); // 空Map
m.set('Adam', 67); // 添加新的key-value
m.set('Bob', 59);
m.has('Adam'); // 是否存在key 'Adam': true
m.get('Adam'); // 67
m.delete('Adam'); // 删除key 'Adam'
m.get('Adam'); // undefined

Set

Set和Map类似,也是一组key的集合,但不存储value。且key不能重复,重复元素在Set中自动被过滤。
.add()
.delete()

var s = new Set([1, 2, 3, 3, '3']);
s; // Set {1, 2, 3, "3"}
s.add(4);
s; // Set {1, 2, 3, "3", 4}
s.add(4);
s; // 仍然是 Set {1, 2, 3, "3", 4}
s.delete(3);
s; // Set {1, 2, "3", 4}

ES6标准iterable类型

Array、Map和Set都属于iterable类型,遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。ES6标准具有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
    console.log(x);
}
for (var x of s) { // 遍历Set
    console.log(x);
}
for (var x of m) { // 遍历Map
    console.log(x[0] + '=' + x[1]);
}

比for…of更好的方法forEach

var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    console.log(element + ', index = ' +index+ ',arry= '+array);
});

显示:
A, index = 0,arry= A,B,C
B, index = 1,arry= A,B,C
C, index = 2,arry= A,B,C


快捷链接

全部Javascript学习笔记的目录 Click Here>>
(github:KuanG97) 下载实战代码 ClickHere>>


猜你喜欢

转载自blog.csdn.net/m0_37136491/article/details/81280012