API数组的使用

// forEach:循环遍历数组
// map : 函数对象,1、循环遍历原始数组的元素,对其每个元素(或符合条件的元素)进行值的修改,并返回一个新的数组对象(在内存中开辟一个新的空间,严格属于数组对象的浅拷贝)
// 注:map执行的函数对象中 一定要有返回值,如果没有返回值 则以undefined作为返回值

// filter: 函数对象 对数组元素进行过滤筛选
// reducer: 对数组的元素值进行累计
// some:判断当前数组一个或多个元素值的条件成立 返回值是布尔类型 true:当前数组一个或多个元素值的条件成立(至少要有一个元素符合条件才会返回true)。 false: 当前数组没有一个元素值的条件成立 才会返回false
// every:判断数组元素的条件是否成立,返回布尔类型, true:当前数组所有元素值条件成立 返回true false:当前数组一个元素或多个元素的条件不成立 返回false,至少有一个元素值不符合条件
// find:查找符合条件的元素(注:查找第一个条件成立的元素) 返回匹配成功的元素对象,如果没有匹配的元素则返回undefined
// findIndex:查找符合条件的元素下表(和indexOf 非常相似,查找第一个成立的)返回匹配成功的元素下表(下标值大于等于0),如果没有匹配的元素则返回一个小于0的值


//Map
  let arr = [1, 2, 3];
        //使用map修改每个元素值(元素值*2)
        let newArray = arr.map((item, idx, targetArray) => {
            return item * 2;
        })
        console.log('arr:', arr, '\n newArray:', newArray);

        //对数组中 元素值为偶数的乘以2
        let newArray2 = arr.map((item, idx, target) => {
            if (item % 2 === 0) return item * 2;
            else return item
        })

every

<script>
        // every:
        let arr = [1, 2, 3];
        let flag = arr.every((item, idx, tarfet) => {
            return item >= 2
        });
        console.log(flag);

        function checkWhiteList(url) {

        }
    </script>

 filter

    <script>
        // filter: 数组元素过滤/筛选
        // filter:处理函数对象 必须有返回值,返回值为布尔类型 true: 该元素返回至新的数值中,false:该元素不返回至新的数组中
        // Array.filter( ( item,index,target )=>{ // 必须要有返回值 布尔类型 })

        let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
        let newArray = arr.filter((item, idx, target) => {
            return item % 2 !== 0;
        });
        console.log(newArray);
        let stus = [{
            sname: '张三',
            score: 59
        }, {
            sname: '李四',
            score: 69
        }, {
            sname: '王五',
            score: 49
        }];

        let newStu = stus.filter(item => item.score >= 60)
        console.log(newStu);
    </script>

find

    <script>
        // find函数
        let arr = [1, 2, 3, 3];
        // 查找数组arr 元素为3的值
        let queryObject = arr.find((item, idx, target) => {
            return item === 3;

        });
        console.log('queryObject:', queryObject);

        let persons = [{
            pname: '张三',
            page: 28
        }, {
            pname: '李四',
            page: 56
        }, {
            pname: '张三',
            page: 280
        }];
        let queryPerson = persons.find(item =>
            item.pname === '张三'
        );
        console.log(queryPerson);
    </script>

findIndex

    <script>
        // findIndex函数
        let arr = [1, 2, 3, 3];
        // 查找数组arr 元素为3的下标值
        let queryIndex = arr.findIndex((item, idx, target) => {
            return item === 3;

        });
        console.log('queryIndex:', queryIndex);
    </script>

forEach

<script>
        // forEach: 循环遍历 数组元素 
        // Array.forEach( (item,index,taget)=>{})
        // item:循环遍历的数组的元素
        // index:每次循环遍历数组元素对应的下标
        // target:循环遍历数组的目标对象 
        let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
        // for (let index = 0; index < arr.lengthlindex++){}
        let newArray = [];
        // arr.forEach(item => newArray.push(item));


        //将arr数组中偶数的元素值乘以2
        arr.forEach(item => {
            if (item % 2 === 0) newArray.push(item * 2);
            else newArray.push(item)
        })
        console.log(arr, newArray);
    </script>

reduce

 <script>
        // reduce : 对数组的元素值进行累计(元素值进行加减乘除)
        // acc: 累计数 上一个元素值与初始的数据进行累计的结果
        // cur: 当前循环遍历的元素
        // idx: 当前循环遍历的数组下标
        // target:循环遍历的数组对象
        // initvalue: 累计的初始值,如果该参数未提供,则累计的初始值以数组第一个元素值为累计的初始值
        // 注:initvalue在正式循环遍历过程中自遍历的次数 数组长度-1
        // reduce函数的返回值 数组所有元素累计的结果值
        // Array.reduce((acc,cur,idx,target) =>{},initvalue);

        // let arr = [1, 2, 3];
        // // 对 arr 数组中每个元素进行累加
        // let total = arr.reduce((acc, cur, idx, target) => {
        //     console.log('acc:', acc, '\n cur:', cur, 'idx:', idx, 'target:', target);

        //     // 将上次累计的总和再和当前的元素进行累加后,再加累计的值返回
        //     return acc + cur;
        // }, 10);
        // console.log(total);

        // // 对往年的销售业绩进行
        // let sales = [{
        //     year: '2018',
        //     sale: -100,
        // }, {
        //     year: '2019',
        //     sale: 10,
        // }, {
        //     year: '2020',
        //     sale: 50
        // }];
        // let salseTatol = sales.reduce((acc, cur, idx, target) => {
        //     console.log('acc:', acc, '\n cur:', cur, 'idx:', idx, 'target:', target);

        //     return acc + cur.sale
        // }, 0);
        // console.log('销售总额:', salseTatol);

        // 统计销售量
        let sales2 = [{
            year: '2018',
            sale: 0.05,
        }, {
            year: '2019',
            sale: 0.05,
        }, {
            year: '2020',
            sale: 0.05
        }];
        let totalsale = sales2.reduce((acc, cur) => {
            return acc * (1 + cur.sale);
        }, 100);
        console.log('三年后销售总额:', totalsale);
    </script>

some

   <script>
        // some: 判断数组元素 是否成立
        let arr = [1, 2, 3];
        let flag = arr.some((item, idx, target) => {
            return item >= 3;
        });
        console.log('flag:', flag);
        // 通过some 函数 设置一个白名单列表检测业务
        function checkWhiteList(url) {
            let whiteList = [
                'http://www.baidu.com',
                'http://www.sina.com',
                'http://www.taobao.com'
            ]
            return whiteList.some(item => item === url)
        }
        console.log('checkWhiteList:', checkWhiteList('http://www.taobao.com'));
    </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值