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