调用数组
arr.forEach((value, index) => { console.log(value, index) })
forEach
是循环遍历一遍数组的每一项,这个是没有返回值的,这个方法里面有个回调函数,回调函数有两个参数,第一个是数组每一项的值value
,第二个参数是数组每一项对应的下标索引index
函数
Tips这个forEahc
循环遍历和JQuery的$.each()
方法是相似的,只不过须要注意的是$.each方法里面的回调函数的两个参数跟forEach
方法是相反的,第一个参数是数组每一项的下标索引index
,第二个参数才是数组每一项 的值value
测试
方法参考文献code
调用索引
const boolean = arr.every((value, index, arr) => { return value==2 })
这个数组方式有点相似短路运算&&
,能够看成是一个数组验真的方法,这个方法里面有个回调函数,这个回调函数有三个参数,第一个是测试的数组每一项,第二个是测试数组项的下标索引,第三个是测试的原数组ip
测试数组的每一项都会执行every()
方法里面的回调函数,这个函数是用来校验数组的每一项是否知足指定条件,数组每一项都会执行一次回调函数,若是数组里面的全部项都知足指定条件,则返回true
,但凡数组里有一项不知足条件,则返回false
get
Tips 若是测试的是空数组,则在一切状况下都会返回true
,这个方法并不会改变原数组回调函数
方法参考文献it
调用console
const boolean = arr.some((value, index, arr) => { return value==2 })
这个数组方法有点相似短路运算||
,能够看成是一个数组验假的方法,这个方法里面有个回调函数,这个回调函数有三个参数,第一个是测试的数组每一项,第二个是测试数组每一项的下标索引,第三个是测试的原数组
测试数组的每一项都会执行some()
方法里面的回调函数,这个函数是用来校验数组的每一项是否有一个知足指定条件,数组每一项都会执行一次回调函数,若是数组里面的全部项都不知足指定条件,则返回false
,但凡数组里有一项知足条件,则当即返回true
Tips 若是测试的是空数组,则在一切状况下都会返回false
,注意这个方法没有找到一个知足条件的数组项,就会一直执行下去,若是找到一个知足条件的数组项,则会当即返回true
,后面的数据就不会再执行
调用
const newArr = arr.map((value, index, arr) => { return value==2 })
这个数组方法会返回一个新数组,数组的结果是数组每一项执行回调函数后的结果的集合,这个方法的回调函数有三个参数,第一个是测试的数组每一项,第二个是测试数组每一项的下标索引,第三个是测试的原数组
测试数组每一项都会执行回调函数,并把执行的结果追加到一个新数组里面,而后返回这个新数组,这个新数组的每一项都是执行回调函数后的结果集
Tips 这个方法并会改变原数组,可是能够在 callback
执行时改变原数组
调用
const newArr = arr.filter((value, index, arr) => { return value==2 })
这个数组方法会返回一个新数组,新数组的结果是测试数组的每一项执行回调函数过滤筛选后知足条件的结果集,这个方法的回调函数有三个参数,第一个是测试的数组每一项,第二个是测试数组每一项的下标索引,第三个是测试的原数组
这个方法就至关于于一个过滤器,筛选器,测试数组每一项都会指定回调函数,可是只有知足指定结果的项才能够被添加到新数组,并返回,不知足的则被过滤掉,若是都不知足,则返回一个空数组
Tips 不会改变原数组,它返回过滤结果的新数组
调用
const result = arr.reduce((count, value, index, arr) => { return count + value },initCount)
这个数组方法会返回一个数组每一项累加的结果值,这个方法有两个参数:
第一个是回调函数,这个回调函数有四个参数,第一个是数组项每一次执行时上一次执行的累计结果,或者用户自定义的初始累计结果,第二个是测试的数组每一项,第三个是测试数组每一项的下标索引,第四个是测试的原数组
第二个参数是初始累计结果,这个是用户自定义的,若是定义了,则初始化执行时用这个值去累加数组第一项,并将累加的结果值做为回调函数的第一个参数用于第二次累计的一个参数,依次循环下去,若是没有,则默认数组第一项
这个方法跟reduce是一毛同样的,只不过一个从左至右,一个是从右至左
一、forEach
是遍历循环数组每一项,没有返回结果,reduce
是将数组每一项累计并返回最终累积值
二、every
和some
是返回一个布尔值,二者是相反的,前者是全部为真,才返回true
,不会终止后面项的执行,后者是只要有一项为真,则当即返回true
,并结束后面项的执行
三、map
和filter
是返回一个新数组,前者是返回数组每一项的计算结果的数组,后者是返回一个知足条件项的计算结果的数组
四、以上方法都不会改变原数组