例子
写一个数组,然后分别用[forEach] [for-in] [for-of] 遍历它。
var arr = ['aaa', 'bbb', 'ccc'];
- forEach 遍历arr:
arr.forEach(value => console.log(value));
forEach运行结果:
aaa
bbb
ccc
- for-in 遍历arr:
for (var n in arr) {
console.log(n);
}
console.log(n) 运行结果:
0
1
2
可以看出 for-in 是对数组中的key进行遍历的,如果想打印出数组的值,需要这样:
for (var n in arr) {
// console.log(n);
console.log(arr[n]);
}
console.log(arr[n]) 运行结果:
aaa
bbb
ccc
- for-of 遍历arr:
for (var n of arr) {
console.log(n);
}
for…of运行结果:
aaa
bbb
ccc
for-of 拓展
- for-of循环以被打断,例如:
var nums = [1, 2, 3];
for (var n of nums) {
if (n > 2) break;
console.log(n);
}
运行结果:
1
2
ES6 提供for-of循环不同于forEach方法,它可以与break、continue和return配合使用。
- for-of循环,遍历获得是对象的值。而for…in循环,遍历获得是对象的键。
- for-of循环不仅支持数组,还支持大多数类数组对象。
支持Map和Set对象遍历。
for-of循环也支持字符串遍历,例如:
for (var n of "fuck news") {
console.log(n);
}
运行结果:
> f
> u
> c
> k
>
> n
> e
> w
> s
另外,
typescript可以在线编译,网址连接:
link.
https://www.tslang.cn/play/index.html