JavaScript權威指南(第6版)學習筆記四

來源:互聯網
上載者:User

標籤:i+1   array   調用   連結   數字   添加元素   使用數組   移動   設定   

第七章 數組

一、建立數組

使用數組直接量是最簡單的方法:

var empty=[];var primes=[1,3,5,7,11];var m=[1.1,"a",true];var b=1024;var table=[b,b+1,b+2];var bc=[[1,{x:1,y:2}],[2,{x:3}]]//如果直接量中省略某個值,則預設賦予undefined值var count=[1,,3];

數組直接量中允許元素結尾有逗號:

var a=[1,2,];   //兩個元素分別為1和2var b=[true,,];  //兩個元素分別為true和undefined

另外一種方法是調用建構函式Array():

var arra=new Array(); //無參數var arrb=new Array(10);  //建立一個長度為10的數組var a=new Array(5,3,1,"testabc");  //顯式指定元素

二、數組元素的讀寫

var a=["world"];var value=a[0];  //讀第0個元素a[1]=3.14;  //寫第1個元素i=2;a[i]=3;  //寫第2個元素a[i+1]="hello";   //寫第3個元素a[a[i]]=a[0];   //讀第0個和第2個元素,寫第3個元素

數組是對象的特殊形式,使用方括弧訪問數組元素就像用方括弧訪問對象的屬性一樣——即JavaScript把數組的數字索引轉換成字串:即索引值0變為“0”,索引值1變為“1”,然後將其作為屬性名稱使用。這一點對於常規對象也可以這樣做:

var o={};  //建立一個普通對象o[1]="one";   

雖然如上所述,但對於數組來說,其特別之處在於可以自動維護length屬性值(當長度小於2^32)。所有的索引都是屬性名稱,但只有0~(2^32-2)之間的整數的屬性名稱才可以作為索引。所有數組都是對象

 三、稀疏數組

稀疏數組就是包含從0開始的不連續索引的數組,因此稀疏數組的length屬性值是大於元素實際的個數的。

a=new Array(5);    //數組沒有元素,但是長度為5a=[];        //建立一個空數組,length=0a[1000]=0;    //給數組a 添加元素,此時length=1001

 四、數組長度

當設定數組length屬性值為一個小於當前長度的整數值時,數組則會相應變化。

a=[1,2,3,4,5];a.length=3;   //此時a變成[1,2,3]a.length=0;   //此時a變成[]a.length=5;   //此時a長度為5,但沒有元素,類似於new Array(5)

如果將length屬性值設為大於當前長度的整數值,這並不會向數組中添加元素,而只是在原數組尾部建立一個空的地區。

五、數組元素的添加和刪除

直接為新索引賦值:

a=[];a[0]="zero";a[1]="one";

也可以用push()方法在尾部增加一個或多個元素,這種方法在操作增加一個元素時和給數組a[a.length]賦值是一個效果:

a=[];a.push("zero");a.push("one","two");    //此時a為["zero","one","two"]

如果要在數組首部插入一個元素,可以使用unshift()方法,其他元素依次移動到更高索引位置上。

a=[1,2,3];delete a[1];   //此時索引1處沒有元素,a變成稀疏數組1 in a;      //falsea.length    //依舊為3,長度不變。

另外可以把length設定小以刪除尾部的元素。數組也有pop()方法,每次使用減少長度1並返回被刪除的元素值。還有一個shift()方法,從頭部刪除一個元素。

六、數組遍曆

使用for迴圈是遍曆數組最常見的方法:

var keys=Object.keys(o);   //獲得o對象屬性名稱組成的數組var values=[];for(var i=0; i<keys.length;i++) {  var key=keys[i];  values[i]=o[key];}

七、多維陣列

var table=new Array(10);for(var i=0;i<table.length;i++)     table[i]=new Array(10);for(var row=0;row<table.length;row++) {    for(col=0;col<table[row].length;col++) {        table[row][col]=row*col;    }}

八、數組方法

1、join()將數組中所有元素都轉換成字串並連結在一起,返回最後產生的字串。預設使用逗號進行分隔,也可以指定參數作為分隔字元。

var a=[1,2,3];a.join();   //"1,2,3"a.join(" ");   //"1 2 3"a.join("");   //"123"var b=new Array(10);b.join("-");   //"---------";9個連字號

2、reverse()方法將數組中的元素倒序,返回逆序後的數組,替換原數組。

var a=[1,2,3];a.reverse().join();    //"3,2,1",a也變成了[3,2,1]

3、sort()方法將數組元素依據一定規則進行排序,當沒有參數時,元素用字母表順序排序。數組中的undefined元素,會被排到數組尾部。

var a=new Array("banana","cherry","apple");a.sort();var s=a.join(", ");    //“apple, banana, cherry”

4、slice()方法返回指定數組的一個片段或子數組。

var a=[1,2,3,4,5];a.slice(0,3);   //返回[1,2,3]a.slice(3);   //返回[4,5]a.slice(1,-1);   //返回[2,3,4]a.slice(-3,-2);   //返回[3]

5、splice()方法能從數組中刪除元素、插入元素到數組中或同時兩個操作。第一個參數指定了插入或刪除的起始位置,第二個參數指定了應該從數組中刪除的元素的個數,如果第二個參數省略,則從起始點到數組結尾所有元素都將被刪除。splice()返回一個由刪除元素組成的數組,如果沒有刪除元素就返回空數組。

var a=[1,2,3,4,5,6,7,8];a.splice(4);    //返回[5,6,7,8],a變成[1,2,3,4]a.splice(1,2); //返回[2,3],a變成[1,4]a.splice(1,1); //返回[4],a變成[1]

splice()前兩個參數指定了需要刪除的數組元素,緊隨其後面的任意個參數指定了需要插入到數組中的元素,插入的位置由第一個參數指定。

var a=[1,2,3,4,5];a.splice(2,0,‘a‘,‘b‘];  //返回[];a變成[1,2,‘a‘,‘b‘,3,4,5]a.splice(2,2,[1,2],3);   //返回[‘a‘,‘b‘];a變成[1,2,[1,2],3,3,4,5]

6、push()/pop()方法:push()在數組尾部添加一個或多個元素,並返回數組新的長度。pop()則刪除數組的最後一個元素,減少數組長度並返回被它刪除的值。兩個方法都修改並替換的原數組。

JavaScript權威指南(第6版)學習筆記四

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.