Js函数(七) 利用函数实现数组的高阶函数原理 2021-11-21

 let arr = [22, 33, 44, 55, 11]

            // 1.forEach(),遍历数组

        function forEach(arr, callback) {

            for (let i = 0; i < arr.length; i++) {

                callback(arr[i], i)

            }

        }

        forEach(arr, (item, index) => console.log(index + '--' + item))

        // 2.every()方法 检查所有元素是否满足指定规则

        function every(arr, callback) {

            for (let i = 0; i < arr.length; i++) {

                if (!callback(arr[i])) {

                    return false

                }

            }

            return true

        }

        console.log(every(arr, num => num > 10));

        console.log(every(arr, num => num < 10));

        // 3.reduce() 方法,从左到右累加和

        function reduce(arr, callback, initNum) {

            for (let i = 0; i < arr.length; i++) {

                let r = callback(initNum, arr[i])

                initNum = r

            }

            return initNum

        }

        console.log(reduce(arr, (a, b) => a + b, 0));

        // 4.filter()方法

        // 用于过滤数组中的元素,返回过滤结果   重新声明一个新数组,过滤后返回到新数组

        function filter(arr, callback) {

            let newArr = []; //声明新数组

            for (let i = 0; i < arr.length; i++) {

                if (callback(arr[i])) { //如果他是true

                    newArr.push(arr[i]) //加到新数组

                }

            }

            return newArr

        }

        let newArr = filter(arr, item => item % 2 == 0)

        console.log(newArr);

        // 5.find()方法,用于获取数组中满足规则的第一个元素

        function find(arr, callback) {

            for (let i = 0; i < arr.length; i++) {

                if (callback(arr[i])) { //如果他是true

                    return arr[i]

                }

            }

        }

        let num1 = arr.find(item => item % 2 === 0)

        console.log(num1);

        // 6.findIndex() 方法, 用于获取数组中满足规则的第一个元素下标

        function findIndex(arr, callback) {

            for (let i = 0; i < arr.length; i++) {

                if (callback(arr[i])) { //如果他是true

                    return i

                }

            }

        }

        let num2 = arr.findIndex(item => item % 2 === 0)

        console.log(num2);

        // 7.some()方法,用于表示数组中是否有满足指定规则的元素,有返回true,一个都没有返回false

        function some(arr, callback) {

            for (let i = 0; i < arr.length; i++) {

                if (callback(arr[i])) {

                    return ture

                }

            }

            return false

        }

        let isOk1 = arr.some(item => item % 20 === 0)

        console.log(isOk1);

        // 8.map() 方法, 用于将原始数组里面的数据根据指定的规则返回新的数组\

        // 会改变原数组   用新数组来接

        function map(arr, callback) {

            let newArr = []

            for (let i = 0; i < arr.length; i++) {

                newArr.push(callbackarr[i])

            }

        }

        let newArr2 = (arr.map(item => item * 3))

        console.log(newArr2);

你可能感兴趣的:(Js函数(七) 利用函数实现数组的高阶函数原理 2021-11-21)