05.【JS數(shù)組】內(nèi)置方法:forEach()與map()方法

1.forEach —— 遍歷

forEach遍歷數(shù)組酣倾,對原來的數(shù)據(jù)操作,改變原數(shù)組

函數(shù)聲明:

[].forEach( function(value, index, array) { 
    //… 
}, [thisArg] );
  1. forEach方法中第一個(gè)參數(shù)是回調(diào)函數(shù),它支持3個(gè)參數(shù):
  • 第1個(gè)是遍歷的數(shù)組內(nèi)容
  • 第2個(gè)是對應(yīng)索引
  • 第3個(gè)是數(shù)組自身

注意:對比jQuery中的$.each方法,參數(shù)位置有變化(第1個(gè)參數(shù)和第2個(gè)剛好相反)

$.each([], function(index, value, array) {
  // ...
});
例子

eg1:

[1, 2 ,3, 4].forEach(console.log);
// 1, 0, [1, 2, 3, 4]
// 2, 1, [1, 2, 3, 4]
// 3, 2, [1, 2, 3, 4]
// 4, 3, [1, 2, 3, 4]

eg2:數(shù)組求和

var sum = 0;
[1, 2, 3, 4].forEach(function (item, index, array) {
  sum += item;      //注:(array[index] == item)為 true
});
console.log(sum); // 10  

2.第二個(gè)參數(shù)thisArg可選司澎,可用于以改變回調(diào)函數(shù)里面的this指針 :如果這第2個(gè)可選參數(shù)不指定,則使用全局對象代替(在瀏覽器是為window)栋豫,嚴(yán)格模式下甚至是undefined.

2.map —— 映射

映射挤安,創(chuàng)建新數(shù)組

函數(shù)聲明:

[].map( function(value, index, array) {
    //… 
}, [thisArg] );

類似于forEach,但需要注意的是:回調(diào)函數(shù)需要有return值丧鸯,否則新數(shù)組都是undefined

例子

eg1:

//求平方值
var data = [1, 2, 3, 4];
var arrayOfSquares = data.map(function (item) {
  return item * item;       //必須要有return
});
alert(arrayOfSquares); // 1, 4, 9, 16

eg2:可以利用map方法方便獲得對象數(shù)組中的特定屬性值們

var users = [
  {name: "張含韻", "email": "zhang@email.com"},
  {name: "江一燕",   "email": "jiang@email.com"},
  {name: "李小璐",  "email": "li@email.com"}
];
var emails = users.map(function (user) { return user.email; });
console.log(emails.join(", ")); // zhang@email.com, jiang@email.com, li@email.com

個(gè)人理解

map能做的事forEach都能做蛤铜,map可以視為forEach的一個(gè)特例,專門用于“通過現(xiàn)有的數(shù)組建立新數(shù)組”丛肢。在沒有map之前是通過forEach來創(chuàng)建新數(shù)組围肥。需要預(yù)先定義空數(shù)組,再通過push操作添加元素摔踱。有map之后虐先,更進(jìn)一步優(yōu)化代碼了怨愤。

for循環(huán)優(yōu)點(diǎn)

  • 可隨意跳出或退出循環(huán)
  • for 循環(huán)還可以隔幾個(gè)去取值
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末派敷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌篮愉,老刑警劉巖腐芍,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異试躏,居然都是意外死亡猪勇,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門颠蕴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泣刹,“玉大人,你說我怎么就攤上這事犀被∫文” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵寡键,是天一觀的道長掀泳。 經(jīng)常有香客問我,道長西轩,這世上最難降的妖魔是什么员舵? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮藕畔,結(jié)果婚禮上马僻,老公的妹妹穿的比我還像新娘。我一直安慰自己注服,他們只是感情好巫玻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祠汇,像睡著了一般仍秤。 火紅的嫁衣襯著肌膚如雪谈况。 梳的紋絲不亂的頭發(fā)上逼裆,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機(jī)與錄音凭峡,去河邊找鬼我抠。 笑死苇本,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菜拓。 我是一名探鬼主播瓣窄,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼纳鼎!你這毒婦竟也來了俺夕?” 一聲冷哼從身側(cè)響起裳凸,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎劝贸,沒想到半個(gè)月后姨谷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡映九,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年梦湘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片件甥。...
    茶點(diǎn)故事閱讀 40,013評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捌议,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出引有,到底是詐尸還是另有隱情禁灼,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布轿曙,位于F島的核電站弄捕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏导帝。R本人自食惡果不足惜守谓,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望您单。 院中可真熱鬧斋荞,春花似錦、人聲如沸虐秦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悦陋。三九已至蜈彼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俺驶,已是汗流浹背幸逆。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留暮现,地道東北人还绘。 一個(gè)月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像栖袋,于是被迫代替她去往敵國和親拍顷。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評論 2 355

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