平時(shí)習(xí)慣用for循環(huán)去遍歷數(shù)組,也懶的去記這些迭代方法传货,但是面試的時(shí)候被問(wèn)到了屎鳍,只知道是迭代方法,卻記不清它們的返回值问裕,還是用的少啊逮壁,現(xiàn)在就把它們做個(gè)總結(jié)吧!順便敲一敲粮宛。
數(shù)組的迭代方法:
ES5中為數(shù)組定義了五種迭代方法:
傳入方法中的函數(shù)會(huì)接受三個(gè)參數(shù):1.數(shù)組項(xiàng)的值 2. 該項(xiàng)在數(shù)組的中位值 3. 數(shù)組對(duì)象本身窥淆;
一.filter():對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定的函數(shù)。返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組巍杈。
var ary=[1,2,3,4,5,6,7,8];
var result=ary.filter(function(item){
return item>3;
});
image.png
二.forEach:對(duì)數(shù)組中每一項(xiàng)運(yùn)行給定函數(shù)忧饭,沒(méi)有返回值
var ary=[1,2,3,4,5,6,7,8];
var a=ary.forEach(function(item){
console.log(item*3);
});
Chrome 測(cè)試結(jié)果:
image.png
三.map():對(duì)數(shù)組中的每一項(xiàng)給定函數(shù),返回每一項(xiàng)調(diào)用這個(gè)函數(shù)的結(jié)果筷畦;
var ary=[1,2,3,4,5,6,7,8];
var a=ary.map(function(item){
return item*2;
});
console.log(a);
image.png
四.every():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)词裤,如果每一項(xiàng)都返回true,則返回true鳖宾,否則false吼砂;
some():對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),如果至少有一項(xiàng)返回true鼎文,則返回true帅刊,否則false;
var ary=[1,2,3,4,5,6,7,8];
//every:
var a=ary.every(function(item){
return item>2;
});
console.log(a); //false
//some():
var ary=[1,2,3,4,5,6,7,8];
var a=ary.some(function(item){
return item>2;
});
console.log(a);//true