JavaScript 連接兩個或多個數組的方法

在JavaScript中數組的reduce()方法文章中曾擴展了一個concat()的用法,現在詳細記錄一下。
定義和用法
concat() 方法用于連接兩個或多個數組。
該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。

語法

arrayObject.concat(arrayX,arrayX,......,arrayX)

參數描述
arrayX必需。該參數可以是具體的值,也可以是數組對象。可以是任意多個。

var a = [0,1,2,3];
  document.write(a.concat(4,5));
    //輸出結果為0,1,2,3,4,5
var a = [1,2];
var b = [4,5,6];
document.write(a.concat(b));
//1,2,3,4,5,6

返回值
返回一個新的數組。該數組是通過把所有 arrayX 參數添加到 arrayObject 中生成的。如果要進行 concat() 操作的參數是數組,那么添加的是數組中的元素,而不是數組。


復習數組對象

數組對象是使用單獨的變量名來存儲一系列的值。
數組對象的作用是:使用單獨的變量名來存儲一系列的值。

如果你有一組數據(例如:動物),存在單獨變量如下所示:

var animal1="rabbit";
var animal2="lion";
var animal3="cat";

數組可以用一個變量名存儲所有的值,并且可以用變量名訪問任何一個值。
數組中的每個元素都有自己的的ID,以便它可以很容易地被訪問到。

創建一個數組
創建一個數組,有三種方法。
下面的代碼定義了一個名為 myCars的數組對象:
1: 常規方式:

var myCars=new Array(); 
    myCars[0]="Saab";    
    myCars[1]="Volvo";
    myCars[2]="BMW";

2: 簡潔方式:

var myCars=new Array("Saab","Volvo","BMW");

3: 字面:

var myCars=["Saab","Volvo","BMW"];

訪問數組
通過指定數組名以及索引號碼,你可以訪問某個特定的元素。
以下實例可以訪問myCars數組的第一個值:
var name=myCars[0];

以下實例修改了數組 myCars 的第一個元素:
myCars[0]="Opel";

[0] 是數組的第一個元素。[1] 是數組的第二個元素。

在一個數組中你可以有不同的對象
所有的JavaScript變量都是對象。數組元素是對象。函數是對象。
因此,你可以在數組中有不同的變量類型。
你可以在一個數組中包含對象元素、函數、數組:

myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;

數組方法和屬性
使用數組對象預定義屬性和方法:

var x = myCars.length           
  // myCars 中元素的數量var y=myCars.indexOf("Volvo") 
  // "Volvo" 值的索引值

注:文章中的定義等專業概念來自W3school 及 http://www.runoob.com 網站。

那么push()和concat()有何區別呢?

push 的定義是:向數組的末尾添加一個或更多元素,并返回新的長度。該方法會改變數組的長度。

<script type="text/javascript">

var arr = new Array(3)
arr[0] = "a"
arr[1] = "b"
arr[2] = "c"

document.write(arr + "<br />")   //a,b,c
document.write(arr.push("d") + "<br />") //4
document.write(arr) //a,b,c,d

</script>

concat 的定義是:連接兩個或更多的數組,并返回結果。該方法不會改變現有的數組,而僅僅會返回被連接數組的一個副本。

var a = [1,2];

document.write(a.concat(3,4,5));
//1,2,3,4,5

document.write(a.push(3,4,5));
//5

區別:

var a = [1,2];

document.write(a.concat([3,4,5]));
//1,2,3,4,5

document.write(a.push([3,4,5]));
//3

push 遇到數組參數時,把整個數組參數作為一個元素;而 concat 則是拆開數組參數,一個元素一個元素地加進去。
push 直接改變當前數組;concat 不改變當前數組。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創建并操作數組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,270評論 0 4
  • 想要做單元測試,第一步先給自己洗腦,相信單元測試是牛逼的,然后在開始學習。洗腦的雞湯文,后續再補上。 基本單元測試...
    軻葉閱讀 282評論 0 1
  • 曾經那執著的的承諾 當我們想起來的時候 只看到的是煙消云散 從此我便不再對誰承諾 從此我也不在讓誰許下諾言 因為所...
    窮奇閱讀 214評論 0 0