1.Array.includes和Array.indexOf
Array.includes(value):返回一个布尔值,value是否在数组中
Array.indexOf(value):如果value在数组中,则返回value在数组中的下标;否则返回-1
当只想确定一下value是否在数组中时,可使用Array.includes()来替代Array.indexOf();
如下图:
2.Array.find 和Array.filter
以上两个方法都是通过回调函数进行数据的返回
Array.filter(fn):在经过回调函数后,返回的是过滤后的仅有符合过滤条件的的数组
Array.find(fn):在经过调用函数后,一旦遇到满足条件的元素就会返回该元素并不再往下走
如下图:
3.Array.find 和Array.some
Array.some(fn):当要知道数组中是否存在一个元素时用到,返回一个boolean值,也是和Array.find(fn)最大的区别
4.Array.reduce 和 Array.filter 与 Array.map 的组合
Array.filter(fn)和Array.map(fn):用于过滤数组后再重新创造一个新的数组,缺点是过滤的时候需要把数组过滤一遍,用map创造一个新的数组的时候还需要把过滤过的数组再重新走一遍,效率较低。
Array.reduce(fn):一个函数就完成了上面两个函数所要完成的步骤,且再过滤的过程中就可以把过滤到的数组元素拼接到新的数组中。
如下图:
注:两者都返回一个布尔值,表示某项是否存在于数组之中,一旦找到对应的项,立即停止遍历数组。不同的是 Array.some 的参数是回调函数,而 Array.includes 的参数是一个值(均不考虑第二个可选参数)。