js 中的陣列Array

2022-06-29 04:48:10 字數 3190 閱讀 4314

1、

ecmascript 中的陣列與其他語言中的陣列有些不同,ecmascript中的陣列可以每一項都不同型別,陣列的大小可以動態調整。

var colors = new array();

var colors = new array(20);

var colors = new array("red","blue","green");

var colors = ;

var colors = ["red","blue","green"];

2、動態修改 length 屬性:新設定的 length 小於原來的 length,則刪除多餘的項;新length大於原來的length,會新增項,且新增項的值是undefined。

3、可以手動在陣列末尾新增項:colors[colors.length] = "brown";

4、檢測變數是不是陣列:1)value instanceof array ,返回true、false。如果多個框架,乙個框架向另乙個框架傳入乙個陣列,那麼該陣列的建構函式與第二個框架中的array建構函式是不同的,instanceof 操作會返回false。

2)方法,array.isarray(value),不管陣列在哪個全域性環境中建立,ie9+

5、array作為一種物件,也具有 tolocalestring()、tosring()、valueof()方法,也有其他自身的一些方法。

1)valueof():返回陣列本身;

2)tostring():呼叫陣列中每一項的 tostring() 方法,並以逗號分隔拼接成乙個字串;

3)tolocalestring():呼叫每一項的 tolocalestring() 方法,並以逗號分隔拼接成乙個字串;

4)join():可以使用特定的分隔符來將陣列拼接成乙個字串,不帶引數,預設以逗號分隔,colors.join("--");

5)push():可以接受任意數量的引數,將他們逐個新增到陣列末尾,並返回修改後陣列的長度;

6)pop():從陣列末尾移除最後一項,陣列length減1,返回移除的項;

7)shift():移除陣列的第一項並返回該項,陣列length減1;

8)unshift():可以接受任意數量的引數,將他們逐個新增到陣列的前端,返回新陣列的長度;

9)reverse():反轉陣列的順序,改變原陣列;

10)sort():預設sort() 方法會先呼叫每一項的tostring(),然後比較得到的各項字串,並以字串公升序排列原陣列,改變原陣列。

sort()方法還可以傳入乙個比較函式作為引數,在比較函式中定義排序規則: 

function compare(value1,value2)else if(value1>value2)else

}

11)concat():可以基於當前陣列及該方法的引數一起組成乙個新陣列,並返回。concat()方法的引數可以是任意個,可以是陣列或其他型別的資料,最終都會按引數的順序新增在原陣列副本的後面,不改變原陣列;

12)slice():可以基於當前陣列的一項或多項建立乙個新陣列,接受乙個或兩個引數,返回項的起始位置和結束位置,類似 string 的 slice() 方法,位置索引可以為負數,計算時會加上陣列長度,結束位置小於起始位置,則返回空陣列。並不會改變原陣列;

13)splice():可以用來刪除陣列中的項,可以插入項,可以替換項,改變原陣列;返回包含刪除項的陣列,如果沒有刪除,則返回空陣列

a)刪除:指定兩個引數,要刪除的第一項的位置及要刪除的項數;如果只有乙個引數,則表示刪除指定位置及之後的陣列項

b)插入:指定三個引數,起始位置,0(要刪除的項數),要插入的項(可以是多項,就要給出更多的引數),colors.splice(1,0,"black","yellow")--》在索引為1的項後面新增

c)替換:刪除一些項,並插入一些項,三個引數,起始位置,n(要刪除的項數),要插入的項(可以是多項,就要給出更多的引數),colors.splice(1,1,"black","yellow")--》刪了索引為2的項,並在索引為2的地方開始新增兩項

14)indexof(item[, startindex]):返回要查詢的項在陣列中的索引值,引數是 要查詢的項和可選的查詢的起點位置,從陣列的起始位置開始往後查詢,用全等(===)比較值是否相等,未找到返回-1

15)lastindexof(item[, startindex]):返回要查詢的項在陣列中的索引值,引數是 要查詢的項和可選的查詢的起點位置,從陣列的末尾往前開始查詢,用全等(===)比較值是否相等,未找到返回-1

16)every( callback(item, index, arrself) [, domain] ):對陣列中的每一項執行給定函式,如果該函式對每一項都返回true ,則返回true,不會改變原陣列;

17)filter( callback(item, index, arrself) [, domain] ):對陣列中的每一項執行給定的函式,並將能夠返回true的項組成的新陣列返回,不會改變原陣列;

18)foreach( callback(item, index, arrself) [, domain] ):對陣列中的每一項執行給定的函式,沒有返回值,不會改變原陣列;

19)map( callback(item, index, arrself) [, domain] ):對陣列中的每一項執行給定的函式,返回每一項執行函式的返回值組成的陣列,不會改變原陣列;

20)some( callback(item, index, arrself) [, domain] ):對陣列中的每一項執行給定的函式,如果該函式對其中任意一項返回true,則返回true,不會改變原陣列;

21)reduce(callback(prev, current, index, arrself) [, startvalue]):引數解釋 ---》(**函式(前乙個值,當前值,索引,陣列本身) [, 歸併初始值])。從陣列開始往後歸併,**函式中每次返回的值都會作為第乙個引數自動傳給下一次。最終返回最            後的結果

22)reduceright(callback(prev, current, index, arrself) [, startvalue]):從陣列末尾往前歸併。若有startvalue,則第一次執行時prev == startvalue,current == arrself[0],index==0;若沒有startvalue,則第一次執行時prev == arrself[0],current == arrself[1] ,index==1;

下一次執行時將上次函式返回的值作為prev,current,index後移一位;

JS中的Array陣列物件

陣列物件是乙個物件的集合,裡邊的物件可以是不同型別的。陣列的每乙個成員物件都有乙個 下標 用來表示它在陣列中的位置,是從零開始的 陣列定義的方法 var 陣列名 newarray var 陣列名 newarray n var 陣列名 元素1 元素2 元素3 我們定義myarray陣列,並賦值,如下 ...

js 清空array陣列

兩種實現方式 1.splice 刪除元素並新增新元素,直接對陣列進行修改,返回含有被刪除元素的陣列。arrayobject.splice index,howmany,element1,elementx index 必選,規定從何處新增 刪除元素。howmany 必選,規定應該刪除多少元素。未規定此引...

記js中 Array 陣列的幾個方法 中

記js中 array 陣列的幾個方法 上 記js中 array 陣列的幾個方法 下 4.重排序方法 reverse 和 sort reverse 方法會反轉陣列項的順序 var values 1,2,3,4,5 values.reverse alert values 5,4,3,2,1在預設情況下,...