js数组迭代⽅法,map与filter以及迭代⽅法实现continue与break
Array.map() 对于数组的每个执⾏项执⾏回调函数,返回函数执⾏后的新数组。
回调函数需要return语句
var array01 =[0,1,2,3];
console.log('--map--')//对于数组的每个项执⾏回调函数,返回函数执⾏后的新数组
console.log(array01.map((val)=>{
val +1// [undefined, undefined, undefined, undefined]
}))
console.log(array01.map((val)=>{
return val +1//算数运算符,返回算数结果
//[1, 2, 3, 4]
}))
console.log(array01.map((val)=>{
return val >1//⽐较运算符,返回true或false
//[false, false, true, true]
}))
Array.filter()过滤数组,返回符合回调函数条件的数组项
console.log(array01.filter((val)=>{
return val +2//需要return语句,过滤回调函数结果为true的值,如果为0则不满⾜
//[0, 1, 2, 3]
}))
console.log(array01.filter((val)=>{
return val //需要return语句,过滤回调函数结果为true的值,如果为0则不满⾜
//[1, 2, 3]filter过滤对象数组
}))
console.log(array01.filter((val)=>{
return val >1//需要return语句
//[2, 3]
}))
Array.forEach()
forEach() 本⾝是不⽀持的 continue 与 break 语句的,我们可以通过 some 和 every 配合return语句来实现。
⽤return语句实现continue效果:
array01.forEach((val)=>{
if(val ==2){
return
}
console.log("val: "+ val)
})
⽤some配合return语句实现continue效果:
array01.some((val)=>{
if(val ==2){
return
}
console.log("val: "+ val)
})
⽤every配合return语句实现break效果:
array01.every((val)=>{
console.log(val)
if(val ==2){
return false
}else{
return true
}
//return val != 2
})
注:return true或false的条件需要写清楚,不可只写⼀个false。
疑问:满⾜条件的数组项还会执⾏⼀次逻辑,⽽函数循环中的break语句,可在逻辑前⾯或者后⾯,即可控制满⾜条件的数组项是否执⾏逻辑。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论