js Array物件的常用方法總結

2021-08-10 15:44:49 字數 4452 閱讀 9306

一、檢測陣列

array.isarray():確定某個值是不是陣列

var arr = [1,2,3];

array.isarray(arr);// true

二、轉換方法

1.tostring():返回由陣列中每個值的字串形式拼接而成的乙個以逗號分隔的字串

2.valueof():返回陣列本身

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

alert(colors.tostring());//red,blue,green

alert(colors.valueof());//red,blue,green

3.join(): join()方法只接受乙個引數,作為字串的分隔符

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

alert(colors.join(","));//red,blue,green

alert(colors.join("||"));//red||blue||green

三、棧方法

1.push(): push()方法可以接受任意數量的引數,把他們逐個新增到陣列的末尾,並返回修改後陣列的長度。

2.pop(): pop()方法可以從陣列末尾移除最後一項,減少陣列的length值,然後返回移除的項。

var num = ;

var count = num.push("1", "2");

alert(count);//2

var numbers = num.pop();

alert(numbers);//"2"

alert(numbers.length);//1

四、佇列方法

1.push():同棧方法中的push()。

2.shift():該方法取得陣列的第一項,返回取出的值。

3.unshift():與shift()的用途相反,能在陣列前端新增任意個項並返回新陣列的長度。

var num = ;

var count = num.push("1", "2", "3");

alert(count);//3

var numbers = num.shift();

alert(numbers);//"1"

alert(num.length);//2

var item = num.unshift("4");

alert(item); //3

五、重排序方法

1.reverse():反轉陣列項的順序。

var values = [1,2,3,4,5];

values.reverse();

alert(values);//

5,4,3,2,1

2.sort():在預設情況下,sort()方法按公升序排列陣列項。為了實現排序,sort()方法會呼叫每個陣列項的tostring()轉型方法,然後比較得到字串。但是sort()方法並不是乙個好的方法,比如:

var values = [0, 1, 5, 10, 15];

values.sort();

alert(values);//

0,1,10,15,5

因為數值5雖然小於10,但是進行字串比較時,「10」位於「5」的前面,所以陣列的順序就被修改了。

因此sort()方法可以接受乙個比較函式作為引數,來指定哪個值位於哪個值前面。

比較函式接受兩個引數,如果第乙個引數應該位於第二個之前則返回乙個負數,兩個引數相等返回0,第乙個引數應該位於第二個之後則返回乙個正數。比如:

function

compare

(num1, num2)

var values = [0, 1, 5, 10, 15];

values.sort(compare);

alert(values);//0,1,5,10,15

六、操作方法

1.concat():用於合併兩個或多個陣列。此方法不會更改現有陣列,而是返回乙個新陣列。

var num1 = [1, 2, 3];

var num2 = [4, 5, 6];

var num3 = num1.concat(num2);//1,2,3,4,5,6

2.slice():slice()方法可以接受乙個或兩個引數,即要返回項的起始和結束位置。它能夠基於當前陣列中的乙個或多個項建立乙個新陣列。

當只有乙個引數時,slice()方法返回從該引數指定的位置開始到當前陣列末尾的所有項。

當有兩個引數是,返回從第乙個引數指定的位置開始到第二個引數指定位置的前一項。比如slice(1,5)是指取陣列的第二項到第五項。

var num = [1,2,3,4,5,6];

var num1 = num.slice(1);

var num2 = num.slice(1,5);

alert(num1);//2,3,4,5,6

alert(num2);//2,3,4,5

3.splice()方法:

splice()有很多用法,主要的用途是向陣列的中部插入項,但使用這種方法的方式有以下三種:

(1)刪除:可以刪除任意數量的項,只需指定兩個引數:要刪除的第一項的位置和要刪除的項數。例如,splice(0,2)會刪除陣列中的前兩項。

(2)插入:可以向指定位置插入任意數量的項,只需提供3個引數:起始位置,0(要刪除的項數),要插入的值。如果要插入多個項,可以傳入任意多個值。比如,splice(1,0,」1」,」2」)會在第乙個位置插入「1」和「2」。

(3)替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定3個引數:起始位置,要刪除的項數,要插入的任意數量的項。插入的項數不必與刪除的項數相等。例如,splice(1,2,」1」,」2」,」3」)會刪除第

一、二位置的值並插入」1」,」2」,」3」。

七、位置方法

indexof()和lastindexof():都接受兩個引數:要查詢的項和(可選的)表示查詢起點位置的索引。其中,indexof()方法從陣列的開頭開始向後查詢,lastindexof()則從陣列的末尾開始向前查詢。在沒有找到的情況下返回-1.

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];

alert(num.indexof(4));//3

alert(num.lastindexof(4));//5

alert(num.indexof(4, 4));//5

alert(num.lastindexof(4, 4));//3

八、迭代方法

1.every():對陣列中的每一項執行給定函式,如果該函式對每一項都返回true,則返回true。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var everyresult = num.every(function

(item));

alert(everyresult);//false

2.fliter():對陣列中的每一項執行給定函式,返回該函式會返回true的項組成的陣列。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var filterresult = num.fliter(function

(item));

alert(filterresult);//[3, 4, 5, 4, 3]

3.foreach():對陣列中的每一項執行給定函式,這個方法沒有返回值,本質上與for迴圈迭代陣列一樣。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];

num.foreach(function

());

4.map():對陣列中的每一項執行給定函式,返回每次函式呼叫的結果組成的陣列。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var mapresult = num.map(function

(item));

alert(mapresult);//[2, 4, 6, 8, 10, 8, 6, 4, 2]

5.some():對陣列中的每一項執行給定函式,如果該函式對任意一項返回true,則返回true。

var num = [1, 2, 3, 4, 5, 4, 3, 2, 1];

var someresult = num.some(function

(item));

alert(someresult);//true

js array 物件方法總結

1.push 後增 push 向陣列的末尾新增乙個或多個元素,並返回新的長度 尾部新增 var a 1,2,3 var b a.push 4 console.log a 1,2,3,4 console.log b 4 2.unshift 前增 unshift 向陣列的開頭新增乙個或多個元素,並返回新...

第203天 js Array物件常用方法

1 shift 刪除原陣列的第一項,返回刪除元素的值 如果陣列為空則返回undefined 2 var arr 1,2,3,4,5 3 var out arr.shift 4 console.log arr 2,3,4,5 5 console.log out 1 6 var arr 7 var ou...

js Array物件的一些方法 面試

那一天月黑風高,面試官問我陣列的方法,我竟然無言以對 陣列的屬性 constructor 返回建立陣列物件的原型函式 length 設定或返回陣列元素的個數 prototype 允許你向陣列物件新增屬性或者方法 array物件方法 說一些就行了 concat 連線兩個或更多的陣列,並返回結果 也可以...