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

2021-09-17 20:33:26 字數 3065 閱讀 9265

記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 第乙...