正向循环
从 0 开始循环 3 次
// 区间: 0<=x<3
for(let i=0; i<3; i++) {
console.log(i)
}
// 0
// 1
// 2
从 1 开始循环 2 次
for(let i=1; i<3; i++) {
console.log(i)
}
// 1
// 2
从 3 开始循环 3 次
for(let i=3; i<6; i++) {
console.log(i)
}
// 3
// 4
// 5
逆向循环
从 6 开始循环 2 次
for(let i=6; i>4; i--) {
console.log(i)
}
// 6
// 5
从 9 开始循环 3 次
for(let i=9; i>6; i--) {
console.log(i)
}
// 9
// 8
// 7
逆向遍历数组
- 次数:
arr.length - 起点:
arr.length-1 - 起点 - 终点 = 次数
arr.leng-1-x=arr.length- x = -1
let arr = ['a', 'b', 'c' ]
for (let i = arr.length-1; i>-1; i-- ) {
console.log(arr[i])
}
for of
for v of 遍历一个可迭代对象,如数组、字符串、Map/Set 。针对一个迭代对象,所以获得 value
遍历数组
let iterable = [10, 20, 30];
for (let value of iterable) {
console.log(value);
}
// 10
// 20
// 30
遍历字符串
let iterable = "boo";
for (let value of iterable) {
console.log(value);
}
// "b"
// "o"
// "o"
遍历map对象
let map = new Map([["a", 1], ["b", 2], ["c", 3]]);
for (let [key, value] of map) {
console.log(value);
}
// 1
// 2
// 3
for (let entry of map) {
console.log(entry);
}
// [a, 1]
// [b, 2]
// [c, 3]
for in
for key in 遍历一个对象的可枚举属性,如对象、数组、字符串。针对属性,所以获得 key
记忆: for index in for value of
遍历对象
var obj = {a:1, b:2, c:3};
// 注意 ---> key是一个字符串
for (var key in obj) {
console.log("obj." + key + " = " + > obj[key]);
}
// 输出:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"
遍历数组
let list = [10, 20, 30];
// 注意 ---> index是一个字符串<<============================================
for (let index in list) {
console.log(index);
}
// '0'
// '1'
// '2'
for await of
类似于 Promise.all
async function () {
const list = [
getData(10),
getData(20)
]
// 跟Promise.all 作用一样
// Promise.all(list).then(res => console.log(res))
for await (let p of list) {
console.log(p)
}
}
每隔一秒打印一次
async function () {
for (let item of [100, 200]) {
const v = await getData(item)
console.log('v', v)
}
}