前言
我个人而言数组的遍历方法是常用到的,每次用我都现搜,所以还是自己整理一下吧。若有术语不当之处,欢迎指出。概述
我主要列出的是封装好的数组遍历方法,包括forEach、map、filter、every、some、reduce、find、findIndex。
二、正文
forEach
forEach()无返回值,对原数组无影响,仅遍历整个数组。
代码如下(示例):
let arr = ['a','b','c','d','e']
let b = a.forEach((item,index)=>{
console.log(item,index)
})
//b => undefined
/*
output
a 0
b 1
c 2
d 3
e 4
*/
2.map
map()有返回值,可以使用return来决定该数组元素项要返回的值,如果不使用return返回,那么这一项就是undefined.
代码如下(示例):
let arr = ['a','b','c','d','e']
let b = arr.map((item,index)=>{
if(item == 'a'){
return item
}
})
// b => ["a", undefined, undefined, undefined, undefined]
filter
filter()筛选函数,有返回值,若该项符合条件,则返回该元素项,反之不返回。
let arr = ['a','b','c','d','e']
let b = arr.filter((item,index)=>{
return item >= 'b'
})
// b => ["b", "c", "d", "e"]
every
every()函数,有返回值,返回true/false;该函数判断是否每一项都符合条件,如果是则返回true,反之false。
let arr = ['a','b','c','d','e']
let b = arr.every((item,index)=>{
return item >= 'b'
})
// b => false
some
some()函数,有返回值,返回true/false;该函数判度是否存在一项符合条件,如果是则为true,反之为false。
let arr = ['a','b','c','d','e']
let b = arr.some((item,index)=>{
return item >= 'b'
})
//b => true
reduce
reduce()函数,累加器,可以对整个数组进行累加,它的参数是一个函数,这个函数的四个参数分别是初始值,或者说是每一次累加后的和、这一项、当前项索引、当前数组。
let arr = ['a','b','c','d','e']
let b = arr.reduce((total,item,index,arr)=>{
console.log(total)
return total + item
})
// b => "abcde"
/*
output:
a
ab
abc
abcd
*/
find
find()方法,返回符合条件的第一个值,否则返回undefined。
let arr = ['a','b','c','d','e']
let b = arr.find((item)=>{
return item > 'b'
})
// b => "c"
findIndex
findIndex()方法,有返回值,返回第一个符合条件的元素的索引,若不存在,则返回-1。一旦有一项符合条件,不再遍历剩余元素。
let arr = ['a','b','c','d','e']
let b = arr.findIndex((item)=>{
console.log(item)
return item > 'b'
})
// b => 2
/*
output:
a
b
c
*/
总结
祝大家头发多多,赚钱多多,技术登峰造极,生活幸福美满。