有關(guān)數(shù)組的常用方法

1. Array.forEach()

將數(shù)組中的每個元素執(zhí)行傳進提供的函數(shù)搜立,沒有返回值程腹,不改變原來的數(shù)組。除非在執(zhí)行函數(shù)時對數(shù)組進行了相應操作儒拂。
例如:

    var test = [1, 2, 3, 4]
    test.forEach(x => {console.log(x)}) // 依次輸出1 2 3 4
    console.log(test) // [1, 2, 3, 4]
    var test = [1, 2, 3, 4]
    test.forEach((x,y) => {test[y] = 2})
    console.log(test) // [2, 2, 2, 2]

可以看出寸潦,如果forEach傳參時只傳了一個色鸳,則默認傳的是value值。若穿了(x, y)這種形式见转,則默認是(value, key)形式命雀。

2. Array.map()

該方法與forEach類似,區(qū)別在于將執(zhí)行結(jié)果組成新的數(shù)組返回斩箫,沒有改變原來的數(shù)組吏砂。與foeEach區(qū)別在于返回了一個新的數(shù)組。

    var test = [1, 2, 3, 4]
    test1 = test.map(x => x * 2);
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // [2, 4, 6, 8]

3. Array.filter()

將數(shù)組所有元素進行判斷乘客,把符合要求的元素組成新數(shù)組返回狐血。

    var test = [1, 2, 3, 4]
    test1 = test.filter(x => x > 2);
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // [3, 4]

4. Array.some()

將所有元素進行判斷,返回一個布爾值易核,如果其中有元素滿足條件則返回true匈织,若都不滿足則返回false。

    var test = [1, 2, 3, 4]
    test1 = test.some(x => x > 3);
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // true

5. Array.every()

與Array.come()類似牡直,區(qū)別在于其中所有元素都滿足才返回true缀匕,只要有一個不滿足就返回false。

    var test = [1, 2, 3, 4]
    test1 = test.every(x => x > 3);
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // false

6. Array.push()與Array.pop()

push是在數(shù)組后面添加新元素碰逸,返回最后一個添加的元素乡小;
pop是刪除最后一個元素,兩者皆改變了原數(shù)組饵史。

    var test = [1, 2, 3, 4]
    test1 = test.push(5, 6, 7);
    console.log(test) // [1, 2, 3, 4, 5, 6, 7]
    console.log(test1) // 7
    var test = [1, 2, 3, 4]
    test1 = test.pop();
    console.log(test) // [1, 2, 3]
    console.log(test1) // 4

7. Array.shift()與Array.unshift()

shift是刪除數(shù)組第一個元素满钟,并返回被刪除的元素。
unshift是在數(shù)組頭部添加相應的元素胳喷,并返回添加后數(shù)組的length零远。兩者皆改變了原數(shù)組。

    var test = [1, 2, 3, 4]
    test1 = test.shift();
    console.log(test) // [2, 3, 4]
    console.log(test1) // 1
    var test = [1, 2, 3, 4]
    test1 = test.unshift(-1, 0);
    console.log(test) // [-1, 0, 1, 2, 3, 4]
    console.log(test1) // 6

8. Array.reduce()與Array.reduceRight()

reduce是將數(shù)組所有元素都調(diào)用返回函數(shù)厌蔽,并返回最后結(jié)果牵辣,傳入的值必須是函數(shù)類型。不改變原數(shù)組奴饮。

    var test = [1, 2, 3, 4]
    function add(a, b) {
        return a + b;
    }
    test1 = test.reduce(add)
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // 10

也可以寫成:

    var test = [1, 2, 3, 4]
    test1 = test.reduce((a, b) => {return a+b})
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // 10

reduceRight遇之類似纬向,區(qū)別是reduceRight是從右往左執(zhí)行罷了。

9. Array.isArray()

判斷對象是否是數(shù)組戴卜,返回布爾值逾条。不改變原數(shù)組。

    var a = 1
    var test = [1, 2, 3, 4]
    console.log(Array.isArray(a)) // false
    console.log(Array.isArray(test)) // true

10. Array.concat()

將多個數(shù)組拼接成一個投剥。返回拼接后的新數(shù)組师脂,不改變原數(shù)組

    var test1 = [1, 2, 3, 4]
    var test2 = [5, 6]
    test3 = test1.concat(test2)
    console.log(test3) // [1, 2, 3, 4, 5, 6]
    console.log(test1) // [1, 2, 3, 4]
    console.log(test2) // [5, 6]

11. Array.toString()

將數(shù)組轉(zhuǎn)化為字符串,返回字符串,不改變原數(shù)組

    var test = [1, 2, 3, 4]
    test1 = test.toString()
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // 1,2,3,4

12. Array.join()

與toString()類似吃警,區(qū)別在于可以傳入?yún)?shù)糕篇,表示每個元素之間的間隔。返回字符串酌心,不改變原數(shù)組拌消。

    var test = [1, 2, 3, 4]
    test1 = test.join('!')
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // 1!2!3!4

13. Array.splice()

很靈活的方法,具體使用方法為:Array.splice(num1, num2, arg1, arg2...)
num1為操作執(zhí)行開始的位置安券,如0表示從array[0]墩崩,即數(shù)組頭部開始。
num2表示要刪除的元素個數(shù)侯勉,從num1開始執(zhí)行(包括num1)
arg1,arg2.....表示要添加的元素鹦筹。
該方法返回刪除的元素組成的數(shù)組,不會改變原數(shù)組址貌。

    var test = [1, 2, 3, 4]
    test1 = test.splice(1, 2, 'haha!', 'wow!')
    console.log(test) // [1, 'haha', 'wow', 4]
    console.log(test1) // [2, 3]

14. Array.slice()

使用方法為Array.slice(start, end)铐拐,表示從已有的數(shù)組中返回選定的元素。
返回選定元素組成的數(shù)組芳誓,該方法不改變原數(shù)組余舶。
注意(start, end)這里被處理成[1, 2)啊鸭,即包括start锹淌,但不包括end。

    var test = [1, 2, 3, 4]
    test1 = test.slice(0, 1)
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // [1]

若只傳入一個值赠制,則表示從該值到數(shù)組末尾赂摆。

    var test = [1, 2, 3, 4]
    test1 = test.slice(1)
    console.log(test) // [1, 2, 3, 4]
    console.log(test1) // [2, 3, 4]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市钟些,隨后出現(xiàn)的幾起案子烟号,更是在濱河造成了極大的恐慌,老刑警劉巖政恍,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汪拥,死亡現(xiàn)場離奇詭異,居然都是意外死亡篙耗,警方通過查閱死者的電腦和手機迫筑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宗弯,“玉大人脯燃,你說我怎么就攤上這事∶杀#” “怎么了辕棚?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我逝嚎,道長扁瓢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任懈糯,我火速辦了婚禮涤妒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赚哗。我一直安慰自己她紫,他們只是感情好,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布屿储。 她就那樣靜靜地躺著贿讹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪够掠。 梳的紋絲不亂的頭發(fā)上民褂,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機與錄音疯潭,去河邊找鬼赊堪。 笑死,一個胖子當著我的面吹牛竖哩,可吹牛的內(nèi)容都是我干的哭廉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼相叁,長吁一口氣:“原來是場噩夢啊……” “哼遵绰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起增淹,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤椿访,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虑润,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體成玫,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年拳喻,在試婚紗的時候發(fā)現(xiàn)自己被綠了哭当。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡舞蔽,死狀恐怖荣病,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情渗柿,我是刑警寧澤个盆,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布脖岛,位于F島的核電站,受9級特大地震影響颊亮,放射性物質(zhì)發(fā)生泄漏柴梆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一终惑、第九天 我趴在偏房一處隱蔽的房頂上張望绍在。 院中可真熱鬧,春花似錦雹有、人聲如沸偿渡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溜宽。三九已至,卻和暖如春质帅,著一層夾襖步出監(jiān)牢的瞬間适揉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工煤惩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嫉嘀,地道東北人。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓魄揉,卻偏偏與公主長得像剪侮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子什猖,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

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

  • 轉(zhuǎn)載:在開發(fā)中不狮,數(shù)組的使用場景非常多,平日中也涉及到很多數(shù)組的api/相關(guān)操作在旱,一直也沒有對這塊內(nèi)容進行一塊整理總...
    七色煙火閱讀 3,219評論 0 3
  • 數(shù)組總共有22種方法摇零,本文將其分為對象繼承方法、數(shù)組轉(zhuǎn)換方法桶蝎、棧和隊列方法驻仅、數(shù)組排序方法、數(shù)組拼接方法登渣、創(chuàng)建子數(shù)組...
    Sachie閱讀 899評論 0 7
  • 前言:js數(shù)組自帶了很多屬性方法噪服,這些方法為我們寫程序提供了方便,因此胜茧,也是筆試粘优、面試中經(jīng)常會被問到的仇味,本文總結(jié)了...
    小道小姐姐閱讀 358評論 0 1
  • Javascript有很多數(shù)組的方法,有的人有W3C的API雹顺,還可以去MDN上去找丹墨,但是我覺得API上說的不全,M...
    頑皮的雪狐七七閱讀 4,084評論 0 6
  • 數(shù)組的方法有數(shù)組原型方法嬉愧,也有從object對象繼承來的方法贩挣,下面就介紹一下數(shù)組常用方法:join() --...
    回到唐朝做IT閱讀 988評論 1 7