for 循环
for (var i=0; i<5; i++) { // 参数(初始值;条件;每循环一次修改初始值、当初始值不在满足条件,循环就被终止)
console.log(i)
// 0
// 1
// 2
// 3
// 4
}
for in 遍历 key
for (index in object)
for in遍历数组循环出的是index,for of循环出的是value
var arr = ['Apple', 'Google', 'Microsoft'];
for (var i in arr) {
console.log(i);
console.log(arr[i]);
}
for of 遍历 valueES6
- for in 一般常用来遍历对象
- for in 数组对象都可以遍历
for of 无法遍历对象,遍历对象需要通过配合 Object.keys(),使用
Object.keys
方法将对象的键名生成一个数组,然后遍历这个数组。for (var key of Object.keys(someObject)) {
console.log(key + ': ' + someObject[key]);
}
for in 遍历对象循环出的是 key,for of 循环出的是 value
for await of
const directoryHandle = await window.showDirectoryPicker();
for await (const [name, handle] of directoryHandle.entries()) {
if (handle.kind === 'file') {
const fileHandle = await directoryHandle.getFileHandle(name);
console.log(fileHandle);
} else {
const directoryHandle = await directoryHandle.getDirectoryHandle(name);
console.log(directoryHandle);
}
}
while 循环
实例
var i = 0
while (i<5) {
console.log(i)
// 0
// 1
// 2
// 3
// 4
i++ // 每循环一次 i + 1,当 i = 5 不在满足条件循环结束
}
continue 跳过当前轮次
跳过当前循环。
for (var i=0; i<5; i++) {
if (i === 2) { // 当 i = 2 时,跳过当前循环
continue
}
console.log(i)
// 0
// 1
// 3
// 4
}
break 退出循环
退出整个循环。
for (var i=0; i<5; i++) {
if (i === 2) { // 当 i = 2 时,终止循环
break
}
console.log(i)
// 0
// 1
}
异步迭代
异步迭代在 Node.js 中用的会多些,使用 for-await-of 遍历异步数据。例如使用 MongoDB 查询数据返回值默认为一个游标对象,避免了一次性把数据读入应用内存
const userCursor = userCollection.find();
for await (const data of userCursor) { ... }