JavaScript 數組 Array 方法

將數組轉換為字符串

JavaScript toString()方法將數組轉換為(逗號分隔的)數組值的字符串往扔。

例子:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString();

join()方法還將所有數組元素連接成一個字符串贩猎。它的行為就像toString(),但另外你可以指定分隔符:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.join(" * ");

pop()和push()

使用數組時萍膛,很容易刪除元素和添加新元素吭服。這就是pop()方法和push()方法。

pop()方法從數組中刪除最后一個元素:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.pop();              // 從 fruits刪除最后一個元素 ("Mango")

pop()方法返回“彈出”的值:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.pop();      // x的值是 "Mango"

push()方法向數組最后添加一個新元素:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Kiwi");       //  添加一個新的元素 ("Kiwi") 到 fruits 最后

push()方法返回新的數組長度:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.push("Kiwi");   //   x 的值是 5

shift()和unshift()

shift()方法刪除第一個數組元素并將所有其他元素“移位”到較低的索引蝗罗。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.shift();            // 刪除第一個元素 "Banana"

shift()方法返回“向外移出”的字符串:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.shift();    //  x 的值是 "Banana"

unshift()方法向數組開頭添加一個新元素艇棕,并把舊元素向高的索引移動:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon");    //  添加一個新的元素 "Lemon" 到 fruits

unshift()方法返回新的數組長度。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.unshift("Lemon");    // 返回 5

改變元素

使用索引號訪問數組元素:

數組索引以0開頭串塑。[0]是第一個數組元素沼琉,[1]是第二個,[2]是第三個...

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[0] = "Kiwi";        // 將fruits的第一個元素改為 "Kiwi"

length屬性提供了一種將新元素附加到數組的簡單方法:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Kiwi";          // 追加 "Kiwi" 到 fruits

刪除元素

由于JavaScript數組是對象拟赊,因此可以使用JavaScript運算符delete刪除元素:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
delete fruits[0];           // 將fruits中的第一個元素更改為undefined

使用delete可能會在數組中留下undefined的孔刺桃。請改用pop()或shift()。

拼接數組

splice()方法可用于向數組添加新項:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 0, "Lemon", "Kiwi");

第一個參數(2)定義了位置吸祟,其中新的元件應被加入的位置(在接合)瑟慈。第二個參數(0)定義應刪除多少元素 。其余參數(“Lemon”屋匕,“Kiwi”)定義要添加的新元素 葛碧。splice()方法返回一個包含已刪除項的數組:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, 2, "Lemon", "Kiwi");

使用splice()刪除元素

通過巧妙的參數設置,您可以使用splice()刪除元素而不在數組中留下“洞”:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(0, 1);        // 刪除fruits的第一個元素

第一個參數(0)定義應添加新元素的位置过吻。第二個參數(1)定義應刪除多少元素 进泼。其余參數被省略蔗衡。不會添加任何新元素。

合并數組

通過concat()方法合并現有數組來創(chuàng)建新數組:

var myGirls = ["Cecilie", "Lone"];
var myBoys = ["Emil", "Tobias", "Linus"];
var myChildren = myGirls.concat(myBoys);   // 合并 myGirls 和 myBoys 兩個數組

concat()方法不會更改現有數組乳绕。它總是返回一個新數組绞惦。

concat()方法可以使用任意數量的數組參數

var arr1 = ["Cecilie", "Lone"];
var arr2 = ["Emil", "Tobias", "Linus"];
var arr3 = ["Robin", "Morgan"];
var myChildren = arr1.concat(arr2, arr3);   // 合并 arr1 和 arr2 和 arr3 三個數組

concat()方法還可以將值作為參數:

var arr1 = ["Cecilie", "Lone"];
var myChildren = arr1.concat(["Emil", "Tobias", "Linus"]); 

數組切片

slice()方法將一個數組切成一個新數組。此示例從數組元素1(“Orange”)開始切出數組的一部分:

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1);

slice()方法創(chuàng)建一個新數組洋措。它不會從源數組中刪除任何元素济蝉。

此示例從數組元素3(“Apple”)開始切出數組的一部分:

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(3);

slice()方法可以采用兩個參數slice(start,end)。方法從start參數中選擇元素菠发,直到(但不包括)end參數王滤。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(1, 3); 

如果省略end參數,就像在第一個示例中那樣滓鸠,slice()方法將切掉數組的其余部分雁乡。

var fruits = ["Banana", "Orange", "Lemon", "Apple", "Mango"];
var citrus = fruits.slice(2); 

自動toString()

當需要原始值時,JavaScript會自動將數組轉換為逗號分隔的字符串糜俗。嘗試輸出數組時總是如此踱稍。這兩個例子將產生相同的結果:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits.toString();
var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.getElementById("demo").innerHTML = fruits;

所有JavaScript對象都有一個toString()方法。

完整數組參考查看參考手冊

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末吩跋,一起剝皮案震驚了整個濱河市寞射,隨后出現的幾起案子,更是在濱河造成了極大的恐慌锌钮,老刑警劉巖桥温,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異梁丘,居然都是意外死亡侵浸,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門氛谜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掏觉,“玉大人,你說我怎么就攤上這事值漫“母梗” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵杨何,是天一觀的道長酱塔。 經常有香客問我,道長危虱,這世上最難降的妖魔是什么羊娃? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮埃跷,結果婚禮上蕊玷,老公的妹妹穿的比我還像新娘邮利。我一直安慰自己,他們只是感情好垃帅,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布延届。 她就那樣靜靜地躺著,像睡著了一般挺智。 火紅的嫁衣襯著肌膚如雪祷愉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天赦颇,我揣著相機與錄音,去河邊找鬼赴涵。 笑死媒怯,一個胖子當著我的面吹牛,可吹牛的內容都是我干的髓窜。 我是一名探鬼主播扇苞,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寄纵!你這毒婦竟也來了鳖敷?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤程拭,失蹤者是張志新(化名)和其女友劉穎定踱,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體恃鞋,經...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡崖媚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了恤浪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畅哑。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖水由,靈堂內的尸體忽然破棺而出荠呐,到底是詐尸還是另有隱情,我是刑警寧澤砂客,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布泥张,位于F島的核電站,受9級特大地震影響鞭盟,放射性物質發(fā)生泄漏圾结。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一齿诉、第九天 我趴在偏房一處隱蔽的房頂上張望筝野。 院中可真熱鬧晌姚,春花似錦、人聲如沸歇竟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焕议。三九已至宝磨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盅安,已是汗流浹背唤锉。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留别瞭,地道東北人窿祥。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像蝙寨,于是被迫代替她去往敵國和親晒衩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351