(JS) JS数组对象:迭代方法(即高阶段数)

2021-12-01  本文已影响0人  Jinx要睡懒觉

JS的高阶函数

语法array.forEach(function(currentValue, index, arr), thisValue)
参数
function(currentValue, index, arr) 必需。 数组中每个元素需要调用的函数。
函数参数:currentValue 必需。当前元素index 可选。当前元素的索引值。arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。
如果这个参数为空, "undefined" 会传递给 "this" 值。

(这里这里(っ•̀ω•́)っ✎⁾⁾ 我爱学习)
八个高阶函数里,forEach可以不一定操作数组,其余的只能操作数组。

1.forEach()

forEach方法,用于循环遍历整个数组,
forEach(fn) :fn是回调函数,该函数有两个参数(参数名是自定义的)。
第1个参数是代表数组中的每一项, 第2个参数是下标。
注意:forEach中不可以使用return。

        let arr = [11,22,33,44,55,66,77,88,99,111,222,333,444]
        arr.forEach((item,index)=>{
            console.log(item,index);
        })

2.filter()

filter方法,用于过滤源数组,返回满足条件的新数组。
注意: filter() 不会对空数组进行检测;filter() 不会改变原始数组。

        let arr2 = arr.filter(r=>r%2===0)
        console.log(arr2);

3.findIndex()

findIndex方法,用于查找数组中满足条件的第一个元素的位置,没有找到,返回-1。
注意: findIndex() 对于空数组,函数是不会执行的;findIndex() 并没有改变数组的原始值。

        let index1 = arr.findIndex(r=>r===55)
        console.log(index1);     // 4
        let index2 = arr.findIndex(r=>r===56)
        console.log(index2);     // -1

4.find()

find方法,用于查找数组中满足条件的第一个元素,没有找到,返回undefined。
注意: find() 对于空数组,函数是不会执行的;find() 并没有改变数组的原始值。

        let num1 = arr.find(r=>r%2===0)
        console.log(num1);
        let num2 = arr.find(r=>r>10000)
        console.log(num2);

5.some()

some方法,用于检查数组中,是否有满足条件的元素。
有一个元素让条件为true,则返回true 。 且剩余的元素不会再进行检测。
注意: some() 不会对空数组进行检测;some() 不会改变原始数组。

        let isOk = arr.some(r=>r>100)
        console.log(isOk);

6.every()

every方法,用于检查数组中,是否有满足条件的元素。
有一个元素让条件为false,则返回false 。且剩余的元素不会再进行检测。
注意: every() 不会对空数组进行检测;every() 不会改变原始数组。

        let isOk2 = arr.every(r=>r>100)
        console.log(isOk2);

7.map()

map方法,用于将源数组中的所有元素,根据条件返回一个全新的数组。
map() 方法按照原始数组元素顺序依次处理元素。
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
注意: map() 不会对空数组进行检测;map() 不会改变原始数组。

        let arr3 = arr.map(r=>r/2)
        console.log(arr3);

8.reduce()

语法array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
reduce方法,循环数组中的每一项进行累计操作。
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
注意: reduce() 对于空数组是不会执行回调函数的。

        let arr = [12,4,5,66,74,15]
        // let r = arr.reduce(function(a,b){
        //     // console.log(a,b);
        //     return a+b;
        // })
        let r = arr.reduce((a,b) => a+b)
        console.log(r);   // 176
上一篇下一篇

猜你喜欢

热点阅读