JavaScript中的迭代方法


????????前面寫過一篇文章是關于js遍歷數(shù)據(jù)的卖局,這段時間看一篇關于JavaScript中的迭代方法感覺不錯也挺實用的匪傍,給大家推薦一下茅坛。
????????ECMAScript5為數(shù)組定義了5個迭代方法。每個方法都接收兩個參數(shù):要在每一項上運行的函數(shù)和(可選的)運行該函數(shù)的作用域對象(即影響this的值)琳袄。傳入這些方法中的函數(shù)會接收三個參數(shù):數(shù)組項的值、該項在數(shù)組中的位置和數(shù)組對象本身纺酸。根據(jù)使用方法的不同窖逗,這個函數(shù)執(zhí)行后的返回值可能會也可能不會影響方法的返回值。這5個迭代方法是:

  • every():對數(shù)組中的每一項運行給定的函數(shù)餐蔬。如果該函數(shù)對每一項都返回true碎紊,則返回true。
  • filter():對數(shù)組中的每一項運行給定的函數(shù)樊诺,返回該函數(shù)會返回true的項組成的數(shù)組仗考。
  • forEach():對數(shù)組中的每一項運行給定的函數(shù)。該方法沒有返回值词爬。
  • map():對數(shù)組中的每一項運行給定的函數(shù)秃嗜,返回每次函數(shù)調用的結果組成的數(shù)組。
  • some():對數(shù)組中的每一項運行給定的函數(shù)顿膨,如果該函數(shù)對任一項返回true锅锨,則返回true。
    ????????以上所有的方法都不會修改數(shù)組中包含的值恋沃。
    一必搞、 every()方法與some()方法
    ????????every()和some()非常相似,它們都用于查詢數(shù)組中的項是否滿足某個條件囊咏。對于every()方法來說顾画,傳入的函數(shù)必須對每一項都返回true,這個方法才返回true匆笤。否則研侣,它就返回false。而some()方法則是只要傳入的函數(shù)對數(shù)組的某一項返回true炮捧,就會返回true庶诡。例如:
var nums = [1,2,3,4,5,4,3,2,1];
var result = nums.every(function(item, index, array){
  return (item > 2);
})
console.info(result);

????????上面的代碼會在控制臺中打印false。

var nums = [1,2,3,4,5,4,3,2,1];
var result = nums.some(function(item, index, array){
  return (item > 2);
})
console.info(result);

????????上面的代碼會在控制臺中打印true咆课。
二末誓、 filter()函數(shù)
????????filter()函數(shù)利用指定的函數(shù)確定是否存在返回的數(shù)組中包含某一項。例如书蚪,要返回一個所有數(shù)值都大于2的數(shù)組喇澡,可以使用下面的代碼:

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

????????上面的代碼通過調用filter()方法返回包含3,4,5,4,3的數(shù)組。這個方法對于查詢符合某些條件的所有數(shù)組非常有用殊校。
三晴玖、 map()方法
????????map()方法也返回一個數(shù)組,而這個數(shù)組的每一項都是在原始數(shù)組中的對應項上運行傳入函數(shù)的結果。例如呕屎,可以給數(shù)組中的每一項都乘以2让簿,然后返回這些乘積組成的數(shù)組:

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

????????map()方法適合用于創(chuàng)建包含的項于另一個數(shù)組一一對應的數(shù)組。
四秀睛、 forEach()方法
????????forEach()方法只是對數(shù)組中的每一項運行傳入的函數(shù)尔当。這個方法沒有返回值,本質上于使用for循環(huán)迭代數(shù)組是一樣的蹂安⊥钟看下面的例子:

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

????????js中的這些數(shù)組方法通過執(zhí)行不同的操作,可以大大的方便處理數(shù)組的任務田盈。

??支持這些迭代方法的瀏覽器有:IE9+畜号,F(xiàn)irefox2+,Safari3+缠黍,Opera9.5+和Chrome弄兜。
------------------------------------------------------------------------------------------------------------------------------------轉自jQuery之家

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末药蜻,一起剝皮案震驚了整個濱河市瓷式,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌语泽,老刑警劉巖贸典,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異踱卵,居然都是意外死亡廊驼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門惋砂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妒挎,“玉大人,你說我怎么就攤上這事西饵≡脱冢” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵眷柔,是天一觀的道長期虾。 經(jīng)常有香客問我,道長驯嘱,這世上最難降的妖魔是什么镶苞? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮鞠评,結果婚禮上茂蚓,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好煌贴,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布御板。 她就那樣靜靜地躺著,像睡著了一般牛郑。 火紅的嫁衣襯著肌膚如雪怠肋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天淹朋,我揣著相機與錄音笙各,去河邊找鬼。 笑死础芍,一個胖子當著我的面吹牛杈抢,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仑性,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼惶楼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了诊杆?” 一聲冷哼從身側響起歼捐,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晨汹,沒想到半個月后豹储,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡淘这,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年剥扣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铝穷。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡钠怯,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出曙聂,到底是詐尸還是另有隱情晦炊,我是刑警寧澤,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布筹陵,位于F島的核電站刽锤,受9級特大地震影響,放射性物質發(fā)生泄漏朦佩。R本人自食惡果不足惜并思,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望语稠。 院中可真熱鬧宋彼,春花似錦弄砍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至莱坎,卻和暖如春衣式,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背檐什。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工碴卧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乃正。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓住册,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瓮具。 傳聞我的和親對象是個殘疾皇子荧飞,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

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

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,216評論 0 4
  • ??引用類型的值(對象)是引用類型的一個實例叹阔。 ??在 ECMAscript 中,引用類型是一種數(shù)據(jù)結構兑巾,用于將數(shù)...
    霜天曉閱讀 1,042評論 0 1
  • 數(shù)組總共有22種方法条获,本文將其分為對象繼承方法忠荞、數(shù)組轉換方法蒋歌、棧和隊列方法、數(shù)組排序方法委煤、數(shù)組拼接方法堂油、創(chuàng)建子數(shù)組...
    Sachie閱讀 888評論 0 7
  • 1024府框,我大學的宿舍日,我們倆的訂婚紀念日讥邻。2015.10.24我們訂婚了迫靖,至今已三周年,而你依然是我的大寶兴使。正...
    竹小蘭結閱讀 876評論 6 3
  • 今天是幸福開心的一天系宜,早上出門去上班兒子說老媽外面有點涼哦!感賞兒子會關心人了发魄。晚上兒子打球回家有些晚了盹牧,我...
    不一樣的我和你閱讀 255評論 2 3