跳到主要内容

循环

循环写法

在 JavaScript 中,有多种循环语句可供选择,以满足不同的需求。以下是 JavaScript 中所有的循环写法:

1. for 循环:

for (let i = 0; i < 5; i++) {
console.log(i)
}

2. while 循环:

let i = 0
while (i < 5) {
console.log(i)
i++
}

3. do...while 循环:

let i = 0
do {
console.log(i)
i++
} while (i < 5)

4. for...in 循环(遍历对象的属性):

const person = {
name: 'Alice',
age: 25,
gender: 'female',
}

for (let key in person) {
console.log(key + ': ' + person[key])
}

5. for...of 循环(遍历可迭代对象):

const fruits = ['apple', 'orange', 'banana']
for (let fruit of fruits) {
console.log(fruit)
}

6. Array.prototype.forEach() 方法:

const fruits = ['apple', 'orange', 'banana']
fruits.forEach((fruit, index) => {
console.log(fruit + ' at index ' + index)
})

7. Array.prototype.map() 方法:

const numbers = [1, 2, 3, 4, 5]
const squareNumbers = numbers.map((number) => {
return number * number
})
console.log(squareNumbers)

8. Array.prototype.filter() 方法:

const numbers = [1, 2, 3, 4, 5]
const evenNumbers = numbers.filter((number) => {
return number % 2 === 0
})
console.log(evenNumbers)

9. Array.prototype.reduce() 方法:

const numbers = [1, 2, 3, 4, 5]
const sum = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue
}, 0)
console.log(sum)

10. Array.prototype.every() 方法:

const numbers = [1, 2, 3, 4, 5]
const allPositive = numbers.every((number) => {
return number > 0
})
console.log(allPositive)

11. Array.prototype.some() 方法:

const numbers = [1, 2, 3, 4, -5]
const hasNegative = numbers.some((number) => {
return number < 0
})
console.log(hasNegative)

12. Iterator 迭代器:

const colors = ['red', 'green', 'blue']
const iterator = colors[Symbol.iterator]()
let next = iterator.next()
while (!next.done) {
console.log(next.value)
next = iterator.next()
}

13. for...await...of 循环(用于异步迭代):

const asyncFunc = async () => {
const promises = [Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)]
for await (const result of promises) {
console.log(result)
}
}
asyncFunc()

14. generator 函数配合 for...of 循环:

function* generatorFunction() {
yield 1
yield 2
yield 3
}

const generator = generatorFunction()
for (const value of generator) {
console.log(value)
}

15. Object.entries() 配合 for...of 循环(遍历对象的键值对):

const person = {
name: 'Alice',
age: 25,
gender: 'female',
}

for (const [key, value] of Object.entries(person)) {
console.log(`${key}: ${value}`)
}

16. Object.keys() 配合 forEach() 方法(遍历对象的键):

const person = {
name: 'Alice',
age: 25,
gender: 'female',
}

Object.keys(person).forEach((key) => {
console.log(key)
})