数组遍历方法
const colorArr = ['green', 'red', 'blue', 'pink', 'purple', 'gray', 'black', 'white']
for循环
// 循环获取值和下标
for(let i = 0; i < colorArr.length; i++) {
console.log(`下标:${i} 值:${colorArr[i]}`)
}
forEach遍历
// 遍历值和下标
colorArr.forEach((item, index) => {
console.log(`下标:${index} 值:${item}`)
})
map遍历----拷贝
// 遍历或拷贝
const bgColor = colorArr.map((item, index) => {
console.log(`下标:${index} 值:${item}`)
return `backgroundColor: ${item}`
})
console.log('backgroundColor:', bgColor)
for…of遍历
// 遍历值
for( let value of colorArr) {
console.log(`值:${index}`)
}
filter遍历----过滤
// 过滤: 排查和排除
const filterArr = colorArr.filter(item => item === 'red')
// const filterArr = colorArr.filter(item => item !== 'red')
console.log('filterArr:', filterArr)// ["red"]
every遍历----验证所有
//验证: 每一项验证为true时为true;没有return返回false。且操作
const everyArr = colorArr.every((item, index) => {
console.log(`下标:${index} 值:${item}`)
return typeof item === 'red'
})
console.log('everyArr:', everyArr)// false
some遍历----验证存在
// 验证: 有一项为true时为true。或操作
const someArr = colorArr.every((item, index) => {
console.log(`下标:${index} 值:${item}`)
return typeof item === 'red'
})
console.log('someArr:', someArr)// true
find遍历----发现(值)
// 发现:返回第一个满足条件的项的值,只返回一项,满足即停止遍历。没发现返回undefined
const findArr = colorArr.find(item => item === 'red')
console.log('findArr:', findArr)// red
findIndex遍历----发现(下标)
// 发现:返回第一个满足条件的项的下标,只返回一项,满足即停止遍历。没发现返回-1
const findArr = colorArr.find(item => item === 'red')
console.log('findArr:', findArr)// 1
keys,values,entries遍历----ES6
// 遍历下标
for (let index of colorArr.key()) {
console.log(`下标:${index}`)
}
// 遍历值
for (let value of colorArr.value()) {
console.log(`值:${value}`)
}
// 遍历下标和值
for (let [index, item] of colorArr.key()) {
console.log(`下标:${index} 值:${item}`)
}
// 使用next()获取
let arrEntries = colorArr.entries();
let entry = arrEntries.next();
while(!entry.done){
console.log('[下标,值]数组:', entry.value);
entry=arrEntries.next();
}
reduce遍历----求和
// 求和:最少传入两个值
const reduceArr = [1, 2, 3].reduce((a, b) => a + b)
//const reduceArr = [1, 2, 3].reduce((4, b) => a + b)
console.log('数组和:' reduceArr) // 6
// 返回数组最大下标
const reduceArr = [1, 2, 3].reduce((a, b, index) => {
console.log('当前下标:', index)// 0 ,1 , 2
return index
})
console.log('最大下标:' reduceArr) // 2
// 返回数组本身
const reduceArr = [1, 2, 3].reduce((a, b, index, arr) => {
return arr
})
console.log('数组本身:' reduceArr)
reduceRight遍历----求和
和reduce方法用法一样,不同的是reduceRight从数组末尾开始求和