Javascript学习笔记---iterable类型

本文用于自我学习中的查漏补缺,方便遗忘时查看

ES6引入的iterable类型,Array,Map,Set都是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]);
}

更好的方式是直接使用iterable内置的forEach方法,它接收一个函数,每次迭代就自动回调该函数。

a.forEach(function (element, index, array) {
    // element: 指向当前元素的值
    // index: 指向当前索引
    // array: 指向Array对象本身
    console.log(element + ', index = ' + index);
});
//Set与Array类似,但Set没有索引,因此回调函数的前两个参数都是元素本身
var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
    console.log(element);
});
//Map的回调函数参数依次为value、key和map本身:
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
    console.log(value);
});

廖雪峰https://www.liaoxuefeng.com/wiki/1022910821149312/1023024358748480

发布了12 篇原创文章 · 获赞 3 · 访问量 175

猜你喜欢

转载自blog.csdn.net/weixin_46592036/article/details/104968831