記js中 array 陣列的幾個方法(上)
記js中 array 陣列的幾個方法(下)
4.重排序方法
reverse()和 sort()
reverse()方法會反轉陣列項的順序
var values = [1, 2, 3, 4, 5];
values.reverse();
alert(values); //5,4,3,2,1
在預設情況下,sort()方法按公升序排列陣列項——即最小的值位於最前面,最大的值排在最後面。為了實現排序,sort()方法會呼叫每個陣列項的 tostring()轉型方法,然後比較得到的字串,以確定如何排序。即使陣列中的每一項都是數值,sort()方法比較的也是字串,如下所示。
var values = [0, 1, 5, 10, 15];
values.sort();
alert(values); //0,1,10,15,5
sort()方法會根據測試字串的結果改變原來的順序。因為數值 5 雖然小於 10,但在進行字串比較時,"10"則位於"5"的前面,於是陣列的順序就被修改了
這種排序方式在很多情況下都不是最佳方案。因此 sort()方法可以接收乙個比較函式作為引數,以便我們指定哪個值位於哪個值的前面
function compare(value1, value2) else if (value1 > value2) else
} var values = [0, 1, 5, 10, 15];
values.sort(compare);
alert(values); //0,1,5,10,15
reverse()和 sort()方法的返回值是經過排序之後的陣列。
5.操作方法
concat()、slice()
concat()方法可以基於當前陣列中的所有項建立乙個新陣列。具體來說,這個方法會先建立當前陣列乙個副本,然後將接收到的引數新增到這個副本的末尾,最後返回新構建的陣列。在沒有給 concat()方法傳遞引數的情況下,它只是複製當前陣列並返回副本。如果傳遞給 concat()方法的是一或多個陣列,則該方法會將這些陣列中的每一項都新增到結果陣列中。如果傳遞的值不是陣列,這些值就會被簡單地新增到結果陣列的末尾
var colors2 = colors.concat("yellow", ["black", "brown"]);
alert(colors); //red,green,blue
alert(colors2); //red,green,blue,yellow,black,brown
slice(),它能夠基於當前陣列中的一或多個項建立乙個新陣列。slice()方法可以
接受一或兩個引數,即要返回項的起始和結束位置。在只有乙個引數的情況下,slice()方法返回從該
引數指定位置開始到當前陣列末尾的所有項。如果有兩個引數,該方法返回起始和結束位置之間的項—
—但不包括結束位置的項。注意,slice()方法不會影響原始陣列。
var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4);
alert(colors2); //green,blue,yellow,purple
alert(colors3); //green,blue,yellow
注:如果 slice()方法的引數中有乙個負數,則用陣列長度加上該數來確定相應的位
置。例如,在乙個包含 5 項的陣列上呼叫 slice(-2,-1)與呼叫 slice(3,4)得到的
結果相同。如果結束位置小於起始位置,則返回空陣列。
splice()的主要用途是向陣列的中部插入項,但使用這種方法的方式則有如下 3 種。
刪除:可以刪除任意數量的項,只需指定 2 個引數:要刪除的第一項的位置和要刪除的項數。
例如,splice(0,2)會刪除陣列中的前兩項。
插入:可以向指定位置插入任意數量的項,只需提供 3 個引數:起始位置、0(要刪除的項數)
和要插入的項。如果要插入多個項,可以再傳入第
四、第五,以至任意多個項。例如,
splice(2,0,"red","green")會從當前陣列的位置 2 開始插入字串"red"和"green"。
替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定 3 個引數:起
始位置、要刪除的項數和要插入的任意數量的項。插入的項數不必與刪除的項數相等。例如,
splice (2,1,"red","green")會刪除當前陣列位置 2 的項,然後再從位置 2 開始插入字串
"red"和"green"。
splice()方法始終都會返回乙個陣列,該陣列中包含從原始陣列中刪除的項(如果沒有刪除任何
項,則返回乙個空陣列)。
var colors = ["red", "green", "blue"];
var removed = colors.splice(0,1); // 刪除第一項
alert(colors); // green,blue
alert(removed); // red,返回的陣列中只包含一項
removed = colors.splice(1, 0, "yellow", "orange"); // 從位置 1 開始插入兩項
alert(colors); // green,yellow,orange,blue
alert(removed); // 返回的是乙個空陣列
removed = colors.splice(1, 1, "red", "purple"); // 插入兩項,刪除一項
alert(colors); // green,red,purple,orange,blue
alert(removed); // yellow,返回的陣列中只包含一項
js 中的陣列Array
1 ecmascript 中的陣列與其他語言中的陣列有些不同,ecmascript中的陣列可以每一項都不同型別,陣列的大小可以動態調整。var colors new array var colors new array 20 var colors new array red blue green v...
JS中的Array陣列物件
陣列物件是乙個物件的集合,裡邊的物件可以是不同型別的。陣列的每乙個成員物件都有乙個 下標 用來表示它在陣列中的位置,是從零開始的 陣列定義的方法 var 陣列名 newarray var 陣列名 newarray n var 陣列名 元素1 元素2 元素3 我們定義myarray陣列,並賦值,如下 ...
JS中all Collection 的幾個方法
1.length屬性 返回集合中元素的個數。2.item vindex isubindex 方法 一 如果只有乙個引數 引數為整型 1 如果引數是整數,根據索引返回子元素 2 如果引數是字串,根據name或者id返回乙個集合或者子元素 二 如果有兩個引數 第乙個引數為字串,第二個引數為整型 1 第乙...