js中常用的循环遍历方法

 

let arr1 = [1, 2, 3, 4, 3, 2,-10]

for

for (let index = 0; index < arr1.length; index++) {
    if(arr1[index] === 4) 
    // continue // -5, 2, 3, 4, 3, 2, -10
    break  // -5, 2, 3
    console.log(arr1[index])
}

fo...of

for(item of arr1){
    if(item === 4)
    break // -5, 2, 3
    // continue  // -5, 2, 3, 4, 3, 2, -10
    console.log(item)
}

for 和 for ...of 可以使用 break 或者 continue 跳过或中断

forEach

arr1.forEach((item,i,arr)=>{
    console.log(item) // -5, 2, 3, 4, 3, 2, -10
    console.log(i) // 0, 1, 2, 3, 4, 5, 6
})

forEach 无法跳出循环

map

let newArr = arr1.map((item,inex) => {
    if(item === 3){
        return item = 100
    }
    return item
})
console.log(newArr)  // [-5, 2, 100, 4, 100, 2, -10]

map方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

filter

let arr2 = [ 
    { name: 'aaa', age: 10 },
    { name: 'bbb', age: 20 },
    { name: 'ccc', age: 10 },
    { name: 'ddd', age: 30 },
    { name: 'eee', age: 10 },
]
let result = arr2.filter(item => item.age == 10 )
console.log(result) 
// [{ name: 'aaa', age: 10 }, { name: 'ccc', age: 10 }, { name: 'eee', age: 10 }]

filter 会将符合回调函数条件的元素组成一个新数组。

some,every

let result1 = arr1.some((item) => item == 4) // true
let result2 = arr1.every((item) => item == 4) // false

二者都是用来做数组条件判断的,都是返回一个布尔值。

some 若某一元素满足条件,返回 true。所有元素不满足条件,返回 false

every some 相反,若有一元素不满足条件,返回 false。所有元素满足条件,返回 true

find,findIndex

let arr2 = [ 
    { name: 'aaa', age: 10 },
    { name: 'bbb', age: 20 },
    { name: 'ccc', age: 10 },
    { name: 'ddd', age: 30 }
]

let result3 = arr2.find((item)=> item.age === 10)
// { name: 'aaa', age: 10 }
let result4 = arr2.findIndex((item)=> item.age === 20)
// 1

find返回符合条件的第一个元素,findIndex返回符合条件的第一个索引

reduce

// 累加器
let arr = [1, 3, 10, -5, 8]
let result = arr.reduce((cur,item)=>{
    return cur + item
},0)
console.log(result) // 17
//取最大值
let result6 = arr.reduce((cur,item)=>{
    return cur > item ? cur : item
}) //10

//取最小值
let result7 = arr.reduce((cur,item)=>{
    return cur < item ? cur : item
}) //-5
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

reduce 方法接收两个参数,第一个参数是回调函数(callback) ,第二个参数是初始值(initialValue)。

total:必需。初始值, 或者计算结束后的返回值。

currentValue:必需。当前元素。

currentIndex:可选。当前元素的索引。

arr:可选。当前元素所属的数组对象。

initialValue:可选。传递给函数的初始值。

for...in

let obj1 = {
    a:'111',b:'222',c:'333'
}

for(item in obj1){
    console.log(item) // a b c
}

可用于循环遍历对象的属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值