在JavaScript中,可以通过很多不同的方式来实现数组的遍历,下面我们先从一些经典的遍历方法开始,然后逐步扩充新的遍历方式。
let index = 0
const array = [1,2,3,4,5,6]
while(index<array.length){
console.log(array[index])
index++
}
//result:1 2 3 4 5 6
const array = [1,2,3,4,5,6]
for(let index = 0; index < array.length; index++) {
console.log(array[index])
}
//result:1 2 3 4 5 6
const array = [1,2,3,4,5,6]
array.forEach(function(current_value,index,value){
console.log(`At index ${index} in ${array} value is ${current_value}`)
})
/*
At index 0 in 1,2,3,4,5,6 value is 1
At index 0 in 1,2,3,4,5,6 value is 2
At index 0 in 1,2,3,4,5,6 value is 3
At index 0 in 1,2,3,4,5,6 value is 4
At index 0 in 1,2,3,4,5,6 value is 5
At index 0 in 1,2,3,4,5,6 value is 6
*/
map会对每一个数组选项应用函数,并返回一个新的数组。
const array = [1,2,3,4,5,6]
const square = x => Math.pow(x,2)
const squares = array.map(square)
console.log(`Original array: ${array}`)
console.log(`squared array ${squares}`)
/*
Original array: 1,2,3,4,5,6
squared array 1,4,9,16,25,36
*/
reduce()方法对数组中的每个元素执行一个由您提供的reduce函数(升序执行),将其结果汇总为单个值返回。
const array = [1,2,3,4,5,6]
const sum = (x,y) => x + y
const array_sum = array.reduce(sum,0)
console.log(`The sum of ${array} is ${array_sum}`)
//The sum of 1,2,3,4,5,6 is 21
通过布尔函数过滤数组中的元素,最后返回一个由过滤出来的元素组成的数组。
const array = [1,2,3,4,5,6]
const even = x => x % 2 === 0
const even_array = array.filter(even)
console.log(`Even numbers in array ${array} is ${even_array}`)
//Even numbers in array 1,2,3,4,5,6 is 2,4,6
every()方法测试一个数组内的所有元素是否能够通过某个指定函数的测试,它返回一个布尔值。
注意:若收到一个空数组,此方法在所有情况下都会返回 true
const array = [1,2,3,4,5,6]
const under_seven = x => x < 7
if(array.every(under_seven)) {
console.log('所有在该数组中的元素均小于7')
}else{
console.log('在该数组中的元素至少有一项不小于7')
}
//所有在该数组中的元素均小于7
some()方法测试数组中是不是至少有一个元素通过了被提供的函数测试,它返回的是一个 boolean 类型的值。
注意:如果用一个空数组进行测试,在任何情况下它返回的值就是 false。
const array = [1,2,3,4,5,6]
const over_seven= x => x > 7
if(array.every(over_seven)) {
console.log('至少有一个元素大于7')
}else{
console.log('没有元素大于7')
}
//没有元素大于7
以上就是JavaScript中的8种遍历数组的方法,我们可以根据实际情况选择适合自己的方法来进行数组的遍历,这些方法的更多实例我们可以参考动力节点在线的视频课程,里面除了大量的实例讲解还要遍历时需要注意的一些问题。
提枪策马乘胜追击04-21 20:01
代码小兵92504-17 16:07
代码小兵98804-25 13:57
杨晶珍05-11 14:54