- forEach等同于for循环
let arr = [1,2,3,4,5]
let a = arr.forEach((val,index)=>{
arr[index] +=1
return index
})
console.log(a) //undefined
console.log(arr) // [2, 3, 4, 5, 6]
map
let arr = [1,2,3,4,5]
let arr1 = arr.map((val,index)=>{
return arr[index] + 1
})
console.log(arr) //[1,2,3,4,5]
console.log(arr1) //[2, 3, 4, 5, 6]
- map与forEach的区别就是,forEach没有返回值,即使return,它的返回值也只会是undefined;
- map的所有返回值会组成一个新的数组
some
let arr = [1,2,3,4,5]
let some1 = arr.some((val,index)=>{
return val==1
})
console.log(some1) //true
let some2 = arr.some((val,index)=>{
return val==6
})
console.log(some2) //false
find
let arr = [1,2,3,4,5]
let find1 = arr.find((val,index)=>{
return val>1
})
console.log(find1) // 2
- 相同:find与some 的用法类似,都是在数组中查找符合条件的值,且当找到符合的值便会停止往后遍历。
- 区别:some返回的值是布尔型,而find返回的是具体的值。
filter
let arr = [1,2,3,4,5]
let filter1 = arr.filter((val,index)=>{
return val>1
})
console.log(filter1) //[2,3,4,5]
- 在指定数组中查找符合条件的“所有”值,并组合成一个新的数组,不会改变原数组
every
let arr = [1,2,3,4,5]
let every1 = arr.every((val,index)=>{
return val>0
})
console.log(every1) //true
let every2 = arr.every((val,index)=>{
return val>1
})
console.log(every2) //false
- 判断数组当中是否“所有”数值都满足条件,满足则返回true,反之,为false
reduce
let arr = [1,2,3,4,5]
let arrString = ["one","two","three","four","five"]
let sum1 = arr.reduce((item,val)=>{
return item+val
})
let sum2 = arrString.reduce((item,val)=>{
return item+val
})
console.log(sum1) //15
console.log(sum2) //onetwothreefourfive
- 若数组元素为数字,则会求数组中所有元素的总和;若数组元素为字符,则会将所有字符拼合在一起