1. 程式人生 > >JS內建物件 Array

JS內建物件 Array

JS的內建物件主要分為四大類:Array  String  Math  Date,我們主要介紹Array

Array

 陣列內的每一項都可以儲存任意型別的資料,陣列的大小可根據需要進行調整。

1. 建立

   a. 使用建構函式:

              var colors= new Array(  )  括號內可以時陣列的資料個數,也可以是每一項具體的資料,但要注意的是,每一項資料之         間用逗號隔開。

   b. 陣列字面量表示法

              var colors=[1,2,3]  每項資料之間用逗號隔開。

2. 元素的訪問與設定

              [ ]進行訪問,從0開始。超出陣列的長度,返回值為undefined。

3. 長度

              array.length,返回值為number.

              可以設定陣列長度以此能在陣列的末尾新增或者刪除新的資料項。

              把一個放在超出當前陣列大小的位置時,系統會自動重新計算陣列的長度,長度值為最後一項索引加一。

 4. 遍歷

for(var i=0;i<array.length;i++) {
  console.log(array[i]);
} 

 5. 陣列中一些常用的方法

   a. push( )        arrayObject.push( value1,value2...)  

                           將括號內的value值依次順序的新增到arrayObject尾部

                            返回陣列的新長度

   b. unshift( )       arrayObject.unshift(value1,value2...)   

                            將括號內的value值依次順序的新增到arrayObject頭部

                            返回陣列的新長度

    c. pop( )           arrayObject.pop( )    刪除最後一個元素,返回刪除的元素

    d. shift( )          arrayObject.shift( )    刪除第一個元素,返回刪除的元素

    e. join( )           arrayObject.join( 分隔符)  

                            將陣列中的元素放入一個字串,返回一個字串;分隔符預設逗號,不寫預設空格。

    f. sort( )            arrayObject.sort( ) 

                             對陣列元素進行排序,返回值為陣列

                              即使陣列中的每一項都是數字,該方法比較的還是字串,按照字串的順序進行排序

                              可以接收一個比較函式作為引數

                              array.sort( function ( x, y ) {

                                                        return x-y;  //  順序輸出

                                                        return y-x;  //  降序輸出

                                                                            })

    g. reverse( )             arrayObject.reverse( )   將陣列中的元素顛倒然後輸出,返回陣列

    h. concat( )                arrayObject.concat(陣列1,陣列2...... )  連線兩個或者多個數組,返回陣列

                                       arr3=arr1.concat(arr2)    1連線2然後放到3裡面

    i. slice( )                   arrayObject.slice( start ,end )    返回陣列選定的元素  返回值為陣列

                                start:必需,從哪開始,可以是負數,負數+陣列的長度就是start

                                end:可選,截止位置,不寫預設到最後一個字元

                                擷取的元素從start開始,到end-1結束

                              [例題]:var a=[1,'yes',3] b; 請做b對a的複製,方法越多越好

                                方法一:陣列遍歷

b=new Array();
for( var i=0;i<a.length;i++)
{
  b.push(a[i]);
}

                                   方法二: 使用concat( )

b=[].concat(a);

                                    方法三:使用slice( )

b=a.slice(0);

    j.  splice( ) 

       <1> 刪除   arrayObject.splice( index,count)

        刪除從index處開始的count個元素,返回被刪除元素的陣列,count為0時,不做任何操做,count不設定值時,從index後的所有元素都將被刪除。

       <2> 插入   arrayObject.splice( index,0,value1,value2......)

        從index位置插入value的值,返回陣列。在索引的後一位插入資料

      <3> 替換   arrayObject.splice( index,count,value1,value2......)

        返回值:從原始陣列中刪除的資料,沒刪除返回空陣列,     count為要刪除的項數

    k. indexOf( )           arrayObject.indexOf( searchvalue, startIndex)

                          searchvalue:必需,所要查詢的資料

                         startIndex: 可選,起點的位置,預設為0

                         返回值:number,  返回查詢的項在陣列中的位置,未找到返回-1

    l. lastIndexOf( )   和上一個類似,從陣列的最後一個元素開始查詢。