哈嘍,小伙伴們我來了,還記得上次我給大家介紹數組的一系列方法嗎?今天這是數組最后的boss-----迭代方法;
迭代方法呢,它包含了五個小方法加一個歸并方法;
1,每個方法都接受兩個參數
2,每個方法都要運行在函數上
3,運行的函數會接受三個參數()
一,every方法:
對數組的每一項運行給定的函數,如果該函數對每一項都返回true,則返回true。
舉個例子哈:
var num=[1,4,3,5,7,8,2,4];
var everynum=num.every(function(item,index,array){//第一個值代表每一項,第二個代表下標,第三個代表原數組;
return (item>2)//return后面必須加條件,如果數組里面都成立的話,返回true,否則返回false;
})
console.log(everynum)//false;
二,some()
對數組的每一項運行給定函數,如果該函數對任一項返回true,則返回true。
var num = [1,2,3,4,5,4,3,2,1];
var somenum = num.some(function(item,index,array){
return (item > 2);//數組中只要有一項符合條件;
})
console.log(somenum)//就返回true
小結:相同點:
1,some和every都返回一個布爾值;
2,三個參數分別是item,index,arr(數組具體項,位置,數字本身);
3,不會對空數組進行檢測;
4,不會改變原始數組;
5,都會遍歷數組
不同點:
1、every()方法,遍歷數組每一項,若全部為true,則返回true;
2、some()方法,遍歷數組的每一項,若其中一項為 true,則返回true;
三,filter方法,
1,說明: ①它主要用于篩選;
②篩選出符合條件的數組;
③他會返回一個新的數組
var num = [1,2,3,4,5,4,3,2,1];
var filnum = num.filter(function(item,index,array){
return (item > 2);//數組中找符合條件的所有數;
})
console.log(filnum)//[3,4,5,4,3]
四,map方法,
說明:對數組的每一項運行給定函數,返回每次函數調用的結果組成的數組。
例子如下:
var num = [1,2,3,4,5,4,3,2,1];
var mapnum = num.map(function(item,index,array){
return item*2;//給原數組賦予條件;
})
console.log(mapnum); //[2,4,6,8,10,8,6,4,2]//返回新數組;
五,foreach方法,
對數組的每一項運行給定函數。它沒有返回值。
例:
var numbers = [1,2,3,4,5,4,3,2,1];
var num=numbers.forEach(function(item,index,array){
console.log(num); //沒有
})
forEach和map的區別在于,forEach沒有返回值,map有。
六,歸并方法,
①reduce() 是從數組的第一項開始,逐個遍歷到最后。
②reduceRight() 是從數組的最后一項開始,逐個遍歷到最前。
這兩個方法都會迭代數組的所有項,然后構建一個最終返回的值。
傳給這兩個方法的函數接收4個參數:
1)前一個值
2)當前值
3)下標
4)原數組
如:
var sum = [1,2,3,4,5];
var sum1 = values.reduce(function(prev,cur,index,array){
return prev + cur; //1 + 2 = 3 + 3 = 6 + 4 =10 + 5 = 15
});//前一個值加當前值
console.log(sum1); //15
var sum = [1,2,3,4,5];
var sum1 = values.reduceright(function(prev,cur,index,array){
return prev + cur; //1 + 2 = 3 + 3 = 6 + 4 =10 + 5 = 15
});
console.log(sum1); //15
正在努力加載中。。。。。。