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]
}))
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语句,可在逻辑前面或者后面,即可控制满足条件的数组项是否执行逻辑。