es5陣列的新方法
阿新 • • 發佈:2019-01-02
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)