數(shù)組迭代

  • forEach()
  • some()
  • every()
  • map()
  • filter()

上面是數(shù)組的五個迭代方法洋闽,每個方法都接收兩個參數(shù):要在每一項(xiàng)上運(yùn)行的 函數(shù) 和運(yùn)行該函數(shù)的 作用域?qū)ο?/em>(可選的),作用域?qū)ο髮⒂绊憈his的值代乃。傳入這些方法中的函數(shù)會接收三個參數(shù):數(shù)組的項(xiàng)的值、該項(xiàng)在數(shù)組中的位置和數(shù)組對象本身砚偶。

這5種方法都不會改變原數(shù)組的值

forEach()

這個方法沒有返回值瓶珊。它只是對數(shù)組中的每一項(xiàng)運(yùn)行傳入的函數(shù),沒有返回值馆里。本質(zhì)上與使用for循環(huán)迭代數(shù)組一樣。

var numbers=[1,2,3,4,5,4,3,2,1];
numbers.forEach(function(item,index,array){
//執(zhí)行某些操作
});

every() 和 some()

every()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)可柿,如果該函數(shù)對每一項(xiàng)都返回true鸠踪,則返回true。

some()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)复斥,如果該函數(shù)對任一項(xiàng)返回true营密,則返回true。

every()和some()很相似目锭,他們都用于查詢數(shù)組中的項(xiàng)是否滿足某個條件评汰,對every()來說,傳入的函數(shù)必須對每一項(xiàng)都返回true痢虹,這個方法才返回true被去;否則,則返回false奖唯。而some()方法則只要傳入的函數(shù)對數(shù)組中的某一項(xiàng)返回true惨缆,就會返回true。例如:


var numbers=[1,2,3,4,5,4,3,2,1];
var everyResult=numbers.every(function(item,index,array){
return (item>2);
});
console.log(everyResult);//false
var someResult=numbers.some(function(item,index,array){
return (item>2);
});
console.log(someResult);//true

以上代碼調(diào)用了every()和some(),傳入的函數(shù)只要給定項(xiàng)大于2就會返回true丰捷。對于every()坯墨,它返回的是false,因?yàn)橹挥胁糠謹(jǐn)?shù)組符合條件 ; 而對于some()病往,結(jié)果就是true捣染,因?yàn)橹辽儆幸豁?xiàng)是大于2的。

map()

map()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)停巷,返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組液斜。這個數(shù)組的每一項(xiàng)都是在原始數(shù)據(jù)中的對應(yīng)項(xiàng)上運(yùn)行傳入函數(shù)的結(jié)果,例如:

var numbers=[1,2,3,4,5,4,3,2,1];
var mapResult=numbers.map(function(item,index,array){
return item*2;
});
console.log(mapResult); //[2,4,6,8,10,8,6,4,2]

以上代碼返回的數(shù)組中包含每個數(shù)乘以2之后的結(jié)果叠穆,這個方法適合創(chuàng)建包含的項(xiàng)與另一個數(shù)組一一對應(yīng)的數(shù)組。

filter()

filter()是對數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)臼膏,返回該函數(shù)會返回true的項(xiàng)所組成的數(shù)組硼被。它利用指定的函數(shù)確定是否在返回的數(shù)組中包含某一項(xiàng)。例如:

var numbers=[1,2,3,4,5,4,3,2,1];
var filterResult=numbers.filter(function(item,index,array){
return (item>2);
});
console.log(filterResult); //[3,4,5,4,3];

此例子中渗磅,傳入的函數(shù)要返回一個所有數(shù)值都大于2的數(shù)組嚷硫,通過調(diào)用filter()方法創(chuàng)建并返回了包含3,4,5,4,3的數(shù)組检访,因?yàn)閭魅氲暮瘮?shù)對它們的每一項(xiàng)都返回true。這個方法對查詢符合某些條件的所有數(shù)組項(xiàng)非常有用仔掸。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脆贵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子起暮,更是在濱河造成了極大的恐慌卖氨,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件负懦,死亡現(xiàn)場離奇詭異筒捺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纸厉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門系吭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人颗品,你說我怎么就攤上這事肯尺。” “怎么了躯枢?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵则吟,是天一觀的道長。 經(jīng)常有香客問我闺金,道長逾滥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任败匹,我火速辦了婚禮寨昙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掀亩。我一直安慰自己舔哪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布槽棍。 她就那樣靜靜地躺著捉蚤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪炼七。 梳的紋絲不亂的頭發(fā)上缆巧,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機(jī)與錄音豌拙,去河邊找鬼陕悬。 笑死,一個胖子當(dāng)著我的面吹牛按傅,可吹牛的內(nèi)容都是我干的捉超。 我是一名探鬼主播胧卤,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拼岳!你這毒婦竟也來了枝誊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤惜纸,失蹤者是張志新(化名)和其女友劉穎叶撒,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堪簿,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痊乾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了椭更。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哪审。...
    茶點(diǎn)故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖虑瀑,靈堂內(nèi)的尸體忽然破棺而出湿滓,到底是詐尸還是另有隱情,我是刑警寧澤舌狗,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布叽奥,位于F島的核電站,受9級特大地震影響痛侍,放射性物質(zhì)發(fā)生泄漏朝氓。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一主届、第九天 我趴在偏房一處隱蔽的房頂上張望赵哲。 院中可真熱鬧,春花似錦君丁、人聲如沸枫夺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽橡庞。三九已至,卻和暖如春印蔗,著一層夾襖步出監(jiān)牢的瞬間扒最,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工华嘹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留扼倘,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像再菊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颜曾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1.背景介紹 使用JavaScript數(shù)組常常需要對數(shù)組進(jìn)行遍歷纠拔、迭代操作。而我們常用的就是for語句對數(shù)組進(jìn)行迭...
    hamieva閱讀 859評論 0 1
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,238評論 0 4
  • every()對數(shù)組中的每一項(xiàng)都運(yùn)行給定函數(shù)泛豪,返回值:當(dāng)且僅當(dāng)全部true時稠诲,才會返回true filter()對...
    c59ffede9db6閱讀 211評論 0 0
  • every() 對數(shù)組每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)每一項(xiàng)返回true诡曙,則返回true臀叙。 filter() ---...
    他在發(fā)呆閱讀 189評論 0 0
  • 數(shù)組是值的有序集合。每個值叫做一個元素价卤,而每個元素在數(shù)組中有一個位置劝萤,以數(shù)字表示,稱為索引慎璧。 JavaScript...
    劼哥stone閱讀 1,133評論 6 20