数组API和部分API的重构——2(indexOf、lastIndexOf、fill、forEach、map、some、every、filter、reduce、flatMap)

本文深入探讨了JavaScript数组的几个核心API,包括indexOf用于查找元素位置,lastIndexOf从后向前搜索元素,fill用于填充数组,forEach遍历数组并自动过滤空元素,map进行映射操作创建新数组,some和every分别检查数组中有无满足条件的元素,filter筛选满足条件的元素,reduce进行归并操作,以及flatMap实现数组的扁平化。这些API在日常开发中广泛应用,理解其工作原理和用法至关重要。
摘要由CSDN通过智能技术生成

11、indexOf //在数组中查找元素,并且返回该元素的下标,如果没有找到返回-1

        var arr=[1,2,5,3,4,2,3,7,2,3,5];
        var index=arr.indexOf(5);//返回下标
        var index=arr.indexOf(3,4);//从下标为4开始查找

        var index=0;
        do{
            index=arr.indexOf(3,index);
            console.log(index);
        }while(++index>0);//找到为3的所有下标

        var arr=[1,3,3,6,8,2,3,5,6,3,7,9,8,3,6,7,3,8,9];
        var arr1=[]; 
        for(var i=0;i<arr.length;i++){
            if(arr1.indexOf(arr[i])<0) arr1.push(arr[i]);
        }
        console.log(arr1);//把没有重复的数找到
    //重构!
        function indexOf(arr,search,index){
            if(index===undefined) index=0;
            for(var i=index;i<arr.length;i++){
                if(arr[i]===search) return i;
            }
            return -1;
        }

12、lastIndexOf //从后向前查找元素
//lastIndexOf(要查找的元素,从什么位置开始查找);

            var arr=[1,3,3,6,8,2,3,5,6,3,7,9,8,3,6,7,3,8,9];
            var index=arr.lastIndexOf(3);
            console.log(index);

13、fill //填充
//fill(要填充的值,从什么位置开始,到什么位置之前结束);

        var arr=[1,,,7];
        arr.fill(5,1,3);
        console.log(arr);
    //fill只能用于有长度的数组,如果不给开始位置和结束位置,就会把数组全部填充覆盖
    //用这种方式填充对象,就会造成填充同一个引用地址的对象

14、forEach //遍历数组,可以获取使用元素和下标,自动过滤空元素,空元素不遍历
//比for in来说,不会遍历到数组的属性
//比for来说,不会遍历到空元素
//有缺陷,函数中this指向会被改变

        arr.forEach(function(item,index,arr){
            console.log(item,index,arr);
            arr[index]=item+10;
        });
        console.log(arr);
    //桥接模式是设计模式的一种
    //桥接模式: 功能与实现分离,使用函数作为桥接方式,功能带入
        function forEach(arr,fn){
            for(var i=0;i<arr.length;i++){
                if(i in arr) fn(arr[i],i,arr);
            }
        }
        var arr=[2,3,4,,7,5,8];
        forEach(arr,function(item,index,arr){
            console.log(item,index,arr);
        })
        forEach(arr,fn2);
        function fn2(item,index,arr){}

15、map //遍历数组,并且使用return返回元素,这些被返回的元素会被放在一个新数组中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值