JS常用數(shù)組函數(shù)備忘

filter()绣的、map()、some()欲账、every()屡江、forEach()、indexOf()赛不、lastIndexOf()惩嘉、reduce()

filter

對數(shù)組中的每個元素都執(zhí)行一次指定的函數(shù)(callback),并且創(chuàng)建一個新的數(shù)組踢故,該數(shù)組元素是所有回調(diào)函數(shù)執(zhí)行時返回值為 true 的原數(shù)組元素宏怔。它只對數(shù)組中的非空元素執(zhí)行指定的函數(shù),沒有賦值或者已經(jīng)刪除的元素將被忽略畴椰,同時,新創(chuàng)建的數(shù)組也不會包含這些元素鸽粉⌒敝回調(diào)函數(shù)可以有三個參數(shù):當(dāng)前元素,當(dāng)前元素的索引和當(dāng)前的數(shù)組對象触机。如參數(shù) thisObject 被傳遞進來帚戳,它將被當(dāng)做回調(diào)函數(shù)(callback)內(nèi)部的 this 對象玷或,如果沒有傳遞或者為null,那么將會使用全局對象片任。filter 不會改變原有數(shù)組偏友,記住:只有在回調(diào)函數(shù)執(zhí)行前傳入的數(shù)組元素才有效对供,在回調(diào)函數(shù)開始執(zhí)行后才添加的元素將被忽略位他,而在回調(diào)函數(shù)開始執(zhí)行到最后一個元素這一期間,數(shù)組元素被刪除或者被更改的产场,將以回調(diào)函數(shù)訪問到該元素的時間為準(zhǔn)鹅髓,被刪除的元素將被忽略。
let array = [1, 2, 3, 4, 5];
let arr1 = array.filter(item => {
  // 過濾掉小于3的,返回新數(shù)組
  return item > 2;
});
console.log(array);
console.log(arr1);

map

對數(shù)組中的每個元素都執(zhí)行一次指定的函數(shù)(callback)京景,直到此函數(shù)返回 true窿冯,如果發(fā)現(xiàn)這個元素,some 將返回 true确徙,如果回調(diào)函數(shù)對每個元素執(zhí)行后都返回 false 醒串,some 將返回 false。它只對數(shù)組中的非空元素執(zhí)行指定的函數(shù)鄙皇,沒有賦值或者已經(jīng)刪除的元素將被忽略芜赌。
let array = [1, 2, 3, 4, 5];
let arr1 = array.map(item => {
  // 數(shù)組每項乘以2,返回新數(shù)組
  return item * 2;
});
console.log(array);
console.log(arr1);

some

let array = [1, 2, 3, 4, 5];
let value1 = array.some(item => {
  // 有沒有大于4的項 true
  return item > 4;
});
let value2 = array.some(item => {
  // 有沒有大于5的項 false
  return item > 5;
});
console.log(value1);
console.log(value2);

every

對數(shù)組中的每個元素都執(zhí)行一次指定的函數(shù)(callback),直到此函數(shù)返回 false育苟,如果發(fā)現(xiàn)這個元素较鼓,every 將返回 false,如果回調(diào)函數(shù)對每個元素執(zhí)行后都返回 true 违柏,every 將返回 true博烂。它只對數(shù)組中的非空元素執(zhí)行指定的函數(shù),沒有賦值或者已經(jīng)刪除的元素將被忽略
let array = [1, 2, 3, 4, 5];
let value1 = array.every(item => {
  // 是不是都大于0 true
  return item > 0;
});
let value2 = array.every(item => {
  // 是不是都大于1 false
  return item > 1;
});
console.log(value1);
console.log(value2);

forEach

let array = [1, 2, 3, 4, 5];
let sum = 0;
let arr1 = array.forEach(key => {
// 累加奇數(shù)項漱竖,原始數(shù)組變化
  if (key % 2 !== 0) {
    console.log(key);
    sum += key;
  }
});
console.log(array);
console.log(arr1);
console.log(sum);

indexOf

正向搜索
let array = [1, 2, 3, 4, 5];
let value1 = array.indexOf(3);
let value2 = array.indexOf(5);
let value3 = array.indexOf(6);
console.log(value1);
console.log(value2);
console.log(value3);

lastIndexOf

反向搜索
lastIndexOf(searchElement: number, fromIndex?: number): number
fromIndex 開始搜索的位置禽篱,默認為數(shù)組的長度(length),在這樣的情況下馍惹,將搜索所有的數(shù)組元素躺率。搜索是反方向進行的。 (注意万矾,參數(shù)2使用的方法悼吱,這里不太對)
let array = [1, 2, 3, 4, 5];
let value1 = array.lastIndexOf(3);
let value2 = array.lastIndexOf(5);
let value3 = array.lastIndexOf(6);
let value4 = array.lastIndexOf(3, 4);
console.log(value1);
console.log(value2);
console.log(value3);
console.log(value4);

reduce

函數(shù)接收一個回調(diào)函數(shù)和初始值,將數(shù)組中的每個值(從左到右)良狈,使用初始值并根據(jù)回調(diào)函數(shù)開始進行計算后添,累加計算結(jié)果,最終成為一個值.
let array = [1, 2, 3, 4, 5];
let value1 = array.reduce((total, item) => total + item, 0);
let value2 = array.reduce((total, item) => total * item, 1);

console.log(value1);
console.log(value2);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末薪丁,一起剝皮案震驚了整個濱河市遇西,隨后出現(xiàn)的幾起案子馅精,更是在濱河造成了極大的恐慌,老刑警劉巖粱檀,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件洲敢,死亡現(xiàn)場離奇詭異,居然都是意外死亡茄蚯,警方通過查閱死者的電腦和手機压彭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來第队,“玉大人哮塞,你說我怎么就攤上這事〉是” “怎么了忆畅?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長尸执。 經(jīng)常有香客問我家凯,道長,這世上最難降的妖魔是什么如失? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任绊诲,我火速辦了婚禮,結(jié)果婚禮上褪贵,老公的妹妹穿的比我還像新娘掂之。我一直安慰自己,他們只是感情好脆丁,可當(dāng)我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布世舰。 她就那樣靜靜地躺著,像睡著了一般槽卫。 火紅的嫁衣襯著肌膚如雪跟压。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天歼培,我揣著相機與錄音震蒋,去河邊找鬼。 笑死躲庄,一個胖子當(dāng)著我的面吹牛查剖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播噪窘,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼梗搅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起无切,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丐枉,沒想到半個月后哆键,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡瘦锹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年籍嘹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弯院。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡辱士,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出听绳,到底是詐尸還是另有隱情颂碘,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布椅挣,位于F島的核電站头岔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鼠证。R本人自食惡果不足惜峡竣,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望量九。 院中可真熱鬧适掰,春花似錦、人聲如沸荠列。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弯予。三九已至戚宦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锈嫩,已是汗流浹背受楼。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留呼寸,地道東北人艳汽。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像对雪,于是被迫代替她去往敵國和親河狐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,864評論 2 354

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