美文网首页
(JS) JS数组对象:迭代方法(即高阶段数)

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

作者: Jinx要睡懒觉 | 来源:发表于2021-12-01 19:27 被阅读0次

    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
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/kytexrtx.html