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)else11)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在預設情況下,...