javascript 之 Array對象(轉自JavaEye)

來源:互聯網
上載者:User

     首先我們來看看它的定義:

 var arrayObj = new Array()
 var arrayObj = new Array([size])
 var arrayObj = new Array([element0[, element1[, [, elementN]]]])

     其中:arrayObj是賦值為Array對象的變數名。
             size由於數組的下標是從零開始,建立的元素的下標將從零到 size -1。 
             element0,...,elementN這將建立具有 n + 1 個元素的長度為 n + 1 的數組。使用該文法時必須有一個以上元素。

     如果只向 Array 的建構函式傳遞了一個參數,而該參數是數字,則它必須是無符號 32 位整數(大約 40 億)。該值成為數組的大小。如果該值為數值,但小於 0 或不為整數,發生執行階段錯誤。

     如果傳遞給 Array 建構函式的是單個值並且不是數值,設定length 屬性為 1,而且唯一的元素值成為單個的傳入的參數。

     由於JS數組為解析數組,也就是儘管可以分配多個元素給一個數組,但實際上只有包含資料的元素才存在。這減少了數組使用的記憶體數量。

     Array對象具有三個內建屬性:constructor,length,prototype我會在特地寫一篇關於constructor, prototype,arguments等對象屬性的文章,在這裡就不在多說了。下面我們主要看看Array內建的一些方法,這個對我們很重要,因為會經常用得這個東東。   concat方法:返回一個新數組,是將參數添加到原數組中構成的var a = [1,2,3,4,5]; 
var b = a.concat(6,7); //a:[1,2,3,4,5]        b:[1,2,3,4,5,6,7]    join方法:join(separator):將數組的元素組起一個字串,以separator為分隔字元,省略的話則用預設用逗號為分隔字元
var a = [1,2,3,4,5]; 
var b = a.join("|"); //a:[1,2,3,4,5]        b:"1|2|3|4|5"    pop方法:刪除原數組最後一項,並返回刪除元素的值;如果數組為空白則返回undefined

var a = [1,2,3,4,5]; 
var b = a.pop(); //a:[1,2,3,4]        b:5  push方法:將參數添加到原數組末尾,並返回數組的長度

var a = [1,2,3,4,5]; 
var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7 

 shift 方法:刪除原數組第一項,並返回刪除元素的值;如果數組為空白則返回undefined

var a = [1,2,3,4,5]; 
var b = a.shift(); //a:[2,3,4,5]        b:1  

unshift方法:將參數添加到原數組開頭,並返回數組的長度

var a = [1,2,3,4,5]; 
var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5] b:7 

註:在IE6.0下測試傳回值總為undefined,FF2.0下測試傳回值為7,所以這個方法的傳回值不可靠,需要用傳回值時可用splice代替本方法來使用 

reverse方法:將數組反序。在執行過程中,這個方法並不會建立一個新的Array對象。如果數組是不連續的,reverse方法將在數組中建立元素以便填充數組中的間隔。這樣所建立的全部元素的值都是undefined。var a = [1,2,3,4,5]; 
var b = a.reverse(); //a:[5,4,3,2,1]        b:[5,4,3,2,1]    slice 方法:返回數組對象的一個子集,索引從start開始(包括 start),到end結束(不包括end),原有數組不受影響。如:[1,2,3,4,5,6].slice(1,4)將得到[2,3,4]。當start或者end為負數時,則使用他們加上length後地值。如:[1,2,3,4,5,6].slice(-4,-1)將得到[3,4,5]。如果end小於等於start,將返回空數組。 例子:var a = [1,2,3,4,5]; 
var b = a.slice(2,5); //a:[1,2,3,4,5]        b:[3,4,5]    sort方法:將Array對象進行適當的排序;在執行過程中並不會建立新的Array對象。如果為sortfunction 參數提供了一個函數,那麼該函數必須返回下列值之一:

   ·負值,如果所傳遞的第一個參數比第二個參數小。 
   ·零,如果兩個參數相等。 
   ·正值,如果第一個參數比第二個參數大。

function SortDemo(){
    var a, l;                       // 聲明變數。
    a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
    l = a.sort();                   // 排序數組。
    return(l);                      // 返回排序的數組。
 }

 

splice方法:splice(start,deleteCount,val1,val2,...):從start位置開始刪除deleteCount項,並從該位置起插入val1,val2,...

var a = [1,2,3,4,5]; 
var b = a.splice(2,2,7,8,9); //a:[1,2,7,8,9,5]  b:[3,4] 
var b = a.splice(0,1); //同shift 
a.splice(0,0,-2,-1); var b = a.length; //同unshift 
var b = a.splice(a.length-1,1); //同pop 
a.splice(a.length,0,6,7); var b = a.length; //同push

toLocaleString

方法:將在Date對象中講解,一般這個方法只是返回給使用者,不作為代碼中計算。

valueOf方法與toString()方法:是數組的元素被轉換為字串,這些字串由逗號分隔,串連在一起。其操作與Array.toString和Array.join 方法相同。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.