1. 程式人生 > >es5陣列的新方法

es5陣列的新方法

1.every方法

//邏輯判斷返回值為一個Boolean值

every方法就是每一個返回函式的返回值都是true的時候,才為true,否則為false

var arr=[1,2,5,88,5,555,856,444];
        var checkresult=arr.every((item,index,arr)=>{
           return item>10 
        })
        console.log(checkresult)//false

 形參:item index arr

item為陣列中的每一個值,

index為索引值

arr為陣列

2.some方法

於every方法剛好相反(就是返回值如果有一個為true的時候則為true)

var arr=[1,2,5,88,5,555,856,444];
        var checkresult=arr.some((item,index,arr)=>{
            console.log(item,index,arr)
           return item>10 
        })
        console.log(checkresult)//true

 3.indexOfhelastIndexOf

該方法是查詢陣列內指定元素的下標(索引值)的方法,如果頭則返回索引值 ,如果沒有則返回-1

indexOf是從前往後查詢,返回的索引值是第一個查詢的數的索引值

lastIndexOf則是從後往前找,返回的索引值則是從後開始找的第一個匹配到的索引值

 var arr=[1,2,5,88,5,555,856,444,1];
        console.log(arr.indexOf(1)) //0
        console.log(arr.lastIndexOf(1)) //8

 4.forEach方法

forEach方法為遍歷陣列,引數為一個回撥函式,回撥函式有三個引數

方法和for迴圈的使用基本上一致

var arr=[1,2,5,88,5,555,856,444,1];
        var sum=0;
        arr.forEach((value,index,arr)=>{
            console.log(sum)
            sum+=value
        })
        console.log(sum)

 5.map方法的使用

便利陣列,回撥函式。返回值在操作之後生成一個新的陣列,新陣列索引結構與元陣列一致,元陣列保持不變

 var arr=[1,2,5];
        console.log(arr.map((value)=>{
            return value*value
        }));
        //返回的是一個數組[1,4,25]
        //元陣列不變[1,2,5]

6.filter方法

filter返回的是一個子集,用來判斷是否返回,返回是true就吧當前元素加入到返回陣列中,false就不新增,元陣列保持不變

必須要有return值

var arr=[1,2,5,6,67,8,9];
        const arr2 =arr.filter((item)=>{
            return item>5
        })
console.log(arr)
//[1,2,5,6,67,8,9] console.log(arr2)//[6,67,8,9]

 

 7.reduce方法

便利陣列,呼叫回撥函式,將陣列的元素合成一個值,元陣列保持不變

 var arr=[1,2,3,4,5,6,7,8,9]
        const arr2=arr.reduce((pre,nex,index,arr)=>{
            console.log(pre,nex,index)
            return pre+nex
        },0)
        console.log(arr2)

 reduce有兩個引數

第一個為回撥函式,第二個為x(0,1)

如果不加第二個引數,那麼便利就會少一次,第一張就是沒有第二個引數的效果,第二章為有第二個引數的效果

沒有第二個引數就會少一個

8.find方法

find查詢的是value值,如果有的話就會返回value值

findIndex查詢的是索引值,如果有的時候找的索引值,如果沒有就是返回的是-1

 //查詢元素
        var arr = [1,2,5,6,9,56]
        const arre=arr.find((val,index,arr)=>{
            console.log(val,index)
            return val>100

        })
        console.log(arre)
        // 只會返回一個值,返回第一個符合要求的值
        // 找不到返回的是undefined
        var arr3 = [1,2,5,6,9,56]
        const arr4=arr.findIndex((val,index,arr)=>{
            console.log(val,index)
            return val>1

        })
        console.log(arr4)