1. for
这是最基本的循环结构,可以用于遍历数组中的每一个元素。
--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
```
let arr = [1, 2, 3, 4]
for (let i = 0
console.log(arr[i])
}
```
2. for...of
这是ES6引入的一种新的循环语法,可以更简洁地遍历数组中的每一个值。
--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
```
let arr = [1, 2, 3, 4]
for (let value of arr) {
console.log(value)
}
```
3. forEach
这是数组的一个方法,用于遍历数组中的每一个元素,并为每个元素执行一个函数。
--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
```
let arr = [1, 2, 3, 4]
arr.forEach(function(value) {
console.log(value)
})
```
4. for...in
虽然`for...in`循环通常用于遍历对象的属性,但它也可以遍历数组。不过,由于它会遍历数组的所有可枚举属性(包括原型链上的属性),因此不推荐用于数组遍历。
--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
```
let arr = [1, 2, 3, 4]
for (let index in arr) {
console.log(arr[index])
}
```
5. map
`map`方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。虽然它主要用于转换数组,但也可以用于遍历。
--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
```
let arr = [1, 2, 3, 4]
arr.map(function(value) {
console.log(value)
})
```
6. filter
`filter` 方法创建一个新数组,其包含通过所提供函数实现的测试的所有元素。
--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
```
let arr = [1, 2, 3, 4]
let newArr = arr.filter(function(value) {
return value > 2
})
console.log(newArr)
```
7. reduce
`reduce`方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行),将其结果汇总为单个返回值。虽然它主要用于累加或汇总数组元素,但也可以用于遍历。
--javascripttypescriptshellbashsqljsonhtmlcssccppjavarubypythongorustmarkdown
```
let arr = [1, 2, 3, 4]
arr.reduce(function(accumulator, currentValue) {
console.log(currentValue)
return accumulator
}, 0)
```
8. every 和 some
这两个方法用于测试数组中的所有元素是否都通过了指定函数的测试(`every`),或者是否至少有一个元素通过了测试(`some`)。虽然它们主要用于测试,但也可以用于遍历。
```
let arr = [1, 2, 3, 4];
console.log(arr.every(function(value) {
return value > 0;
})); // true
console.log(arr.some(function(value) {
return value > 3;
})); // true
```