every:

对数组的每个项做一个判断,如果每个数据执行函数后返回结果都为true, 返回结果就是true, 如果有一个是false, 返回结果就是false

        语法:数组.every(函数);

        用函数的返回值来做判断

        有3个形参(项, 下标, 原数组)

实例:

{

            let arr = [
                {
                    name: "妲己",
                    num: 10,
                    sex: "女"

                },
                {
                    name: "王昭君",
                    num: 20,
                    sex: "女"
                },
                {
                    name: "貂蝉",
                    num: 30,
                    sex: "女"
                },
            ];
            //every:每一个都满足条件,就返回true,只要有一个假的,就返回false
            //every 回调函数返回的是判读条件
            let aa = arr.every(function (item, index, arr) {
                return item.num > 10
            })
            console.log(aa);
        }

some:

some: 对数组的每个项做一个判断,如果每个数据执行函数后返回结果都为false, 返回结果就是false, 如果有一个是true, 返回结果就是true

         语法:数组.some(函数);

         用函数的返回值来做判断

        有3个形参(项, 下标, 原数组)

案例:

{
            let arr = [
                {
                    name: "妲己",
                    num: 10,
                    sex: "女"

                },
                {
                    name: "王昭君",
                    num: 20,
                    sex: "女"
                },
                {
                    name: "貂蝉",
                    num: 30,
                    sex: "女"
                },
            ];
            //some:有一个是真的,整体就是真的,所有都是假的,最后才是假的
            //some中的回调函数返回的是你的判断条件
            let aa = arr.some(function (item, index, arr) {
                return item.sex === "男"
            })
            console.log(aa);
        }

filter:

挑选 每个数据执行函数后 返回结果为 true的 数据, 组成新的数组 返回 返回一个新数组

语法: 数组.filter(函数);

        用函数的返回值来做判断

        有3个形参(项, 下标, 原数组)

find:  

 find:返回满足条件的那条数据,如果没有满足条件的数据,返回undefined

        find:回调函数返回判断条件

语法: 数组.find(函数);

        有3个形参(项, 下标, 原数组)

实例:

{

            let arr = [
                {
                    name: "妲己",
                    num: 10,
                    sex: "女"

                },
                {
                    name: "王昭君",
                    num: 20,
                    sex: "女"
                },
                {
                    name: "貂蝉",
                    num: 30,
                    sex: "女"
                },
            ];
            //find:返回满足条件的那条数据,如果没有满足条件的数据,返回undefined
            //find:回调函数返回判断条件
            let obj = arr.find(function (item, index, arr) {
                return item.name === "王昭君"
            })
            console.log(obj);//{name: '王昭君', num: 20, sex: '女'}
        }

findIndex:

         findIndex:返回满足条件的那条数据的下标,找到返回,没找到返回-1 

         findIndex:回调函数返回符合判断判断条件的那条数据的下标

语法: 数组.findIndex(函数);

        有3个形参(项, 下标, 原数组)

实例:

{

            let arr = [
                {
                    name: "妲己",
                    num: 10,
                    sex: "女"

                },
                {
                    name: "王昭君",
                    num: 20,
                    sex: "女"
                },
                {
                    name: "貂蝉",
                    num: 30,
                    sex: "女"
                },
            ];
            //findIndex:返回满足条件的数据的下标,没找到返回-1 
            //findIndex:回调函数返回的是判断条件
            let aa = arr.findIndex(function (item, index, arr) {
                return item.name === "王昭君"
            })
            console.log(aa);

            // 如果数组的元素是简单类型(数字、字符串),那么indexOf findIndex 都可以查
            // 如果数组的元素是对象,那么就只能使用findIndex

            let nums = [1, 2, 3, 4, 5, 6];
            console.log(nums.indexOf(3));
            console.log(nums.findIndex(item => item == 3));
            console.log(arr.findIndex(item => item.name === '貂蝉'));




        }

raduce:累加、累乘

        语法:数组.reduce(function(total, currentValue, currentIndex, arr), initialValue)

参数

描述

function(total,currentValue, index,arr)

必需。用于执行每个数组元素的函数。

函数参数:


initialValue

可选。传递给函数的初始值

参数

描述

total

必需。初始值, 或者计算结束后的返回值。

currentValue

必需。当前元素

currentIndex

可选。当前元素的索引

arr

可选。当前元素所属的数组对象。

实例:

{
            //reduce:累加
            let arr = [1, 2, 3, 4, 5]

            let sum = arr.reduce(function (val, item, index, arr) {
                return val + item
            }, 0)
            console.log(sum);

            let goods = [
                {
                    name: "手机",
                    num: 10,
                    price: 500,
                    ischecked: true
                },
                {
                    name: "电脑",
                    num: 20,
                    price: 600,
                    ischecked: false
                },
                {
                    name: "ipad",
                    num: 30,
                    price: 700,
                    ischecked: true
                },
            ]


            /*
            let num=goods.reduce(function(val,item){
                if(item.ischecked){
                    
                    return val+item.num
                }else{
                    return val
                }
            },0)
            console.log(num);*/
            let num = goods.reduce((val, item) => item.ischecked ? val + item.num : val, 0)
            let price = goods.reduce((val, item) => item.ischecked ? val + item.price * item.num : val, 0)

            /*
            let sum=0;
            arr.forEach(item=>{
                sum+=item
            })
            console.log(sum);*/

        }