JS基礎篇--JS數組經常使用方法彙總

轉換方法

全部對象都具備toLocaleString()toString()valueOf()方法。其中調用數組toString方法會返回以數組中的每一個值的字符串形式拼接而成的一個以逗號分割的字符串。javascript

而調用valueOf()方法返回的仍是數組。java

var colors = ['red','blue','green'];
console.log(colors.toString());
console.log(colors.valueOf());
console.log(colors.toLocaleString());

獲得的結果如圖所示:
圖片描述ios

另外toLocaleString()方法常常會返回跟toString()valueOf()方法相同的值。但也不是總如此。當調用數組的toLocaleString()方法時,它也會建立一個數組值的以逗號分割的字符串。而與前兩個方法惟一不一樣的是,這一次爲了取得每一項的值,調用的每一項的toLocaleString()方法,而不是toString()方法。以下面例子:數組

var person1 = {
    toLocaleString: function(){
        return "Nikolaos";
    },
    toString: function(){
        return "Nicholaos";
    }
}
var person2 = {
    toLocaleString: function(){
        return "Grigorios";
    },
    toString: function(){
        return "Greg";
    }
}

var person = [person1,person2];
alert(person); //Nicholaos,Greg
alert(person.toString()); //Nicholaos,Greg
alert(person.toLocaleString());//Nikolaos,Grigorios

說明:因爲alert()要接收字符串參數,全部它會在後臺調用toString()方法,獲得跟直接調用toString()方法同樣的結果。函數

數組繼承的toLocaleString()toString()valueOf()方法,在默認狀況下都會以逗號分割的字符串的形式返回數組項。可使用join()方法,則可使用不一樣的分隔符來構建這個字符串。spa

join()方法
join() 方法用於把數組中的全部元素放入一個字符串。元素是經過指定的分隔符進行分隔的。返回一個字符串。code

var colors = ['red','blue','green'];
console.log(colors.join(',')); //red,blue,green
console.log(colors.join('||')); //red||blue||green

棧方法(後進先出)

ArrayObj.push()方法

ArrayObj.pop()方法

ArrayObj.push():就是向數組末尾添加新的元素,返回的是數組新的長度。
ArrayObj.pop():就是向數組中刪除數組最後一個元素而且返回該元素。若是數組爲空就返回undefined。對象

隊列方法(先進先出)

ArrayObj.shift()

ArrayObj.unshift()

ArrayObj.shift():方法用於把數組中的第一個元素刪除,並返回第一個元素的值。
若是數組是空的,則shift() 方法不進行任何操做,返回undefined。請注意,該方法不建立新數組,而是直接修改原來的數組。該方法會改變數組的長度。blog

ArrayObj.unshift() :該方法可把它的參數順序添加到數組的頭部。它直接修改了數組,而不是建立一個新的數組。返回的是新數組的長度。
unshift()在IE6,IE7下,數據有添加成功,但返回值倒是undefined.排序

轉換方法

join()方法

join() 方法用於把數組中的全部元素放入一個字符串。元素是經過指定的分隔符進行分隔的。返回一個字符串

重排序方法

reverse()方法

sort()方法

reverse()方法會對反轉數組項的順序。

var values = [1, 2, 3, 4, 5];
values.reverse();
alert(values);  //5,4,3,2,1

這裏數組的初始值及順序是一、二、三、四、5。而調用數組的reverse()方法後,其值的順序變成了五、四、三、二、1。

sort()方法按升序排列數組——即最小的值位於最前面,最大的值排在最後面。爲了實現排序,sort()方法會調用每一個數組項的toString()轉型方法,而後比較獲得字符串,以肯定如何排序。即便數組中的每一項都是數組,sort()方法比較的也是字符串,以下所示:

var values = [0, 1, 5, 10, 15];
values.sort();
alert(values);  //0,1,10,15,5

種排序方式在不少狀況下都不是最佳方案。所以sort()方法能夠接受一個比較函數做爲參數,以便咱們指定那個值位於那個值的前面。

比較函數接受兩個參數,若是第一個參數應該位於第二個以前則返回一個負數,若是兩個參數相等,則返回0,若是第一個參數位於第二個以後則返回一個正數。如下就是一個簡單的比較函數:

function compare(value1, value2) {
   if (value1 < value2) {
       return -1;
   } else if (value1 > value2) {
       return 1;
   } else {
       return 0;
   }
}

這個比較函數可使用於大多數數據類型,只要將其做爲參數傳遞給sort()方法便可,以下面這個例子所示:

var values = [0, 1, 2, 5, 10, 15];
values.sort(compare);
alert(values);  //0,1,5,10,15

在將比較函數傳遞到sort()方法以後,數值仍然保持了正確的升序。固然,也能夠經過比較函數產生降序排序的結果,只要交換比較函數返回的值便可:

function compare(value1, value2) {
   if (value1 < value2) {
       return 1;
   } else if (value1 > value2) {
       return -1;
   } else {
       return 0;
   }
}
var values = [0, 1, 2, 5, 10, 15];
values.sort(compare);
alert(values);  //15,10,5,1,0

reverse()和sort()方法會返回值是通過排序以後的數組。

對於數值類型或者其valueOf方法會返回數值類型的對象類型,可使用一個更簡單的比較函數。這個函數只要用第二個值減第一個值便可:

function compare(value1, value2) {
   return value2 - value1;
}

因爲比較函數經過返回一個小於零、等於零或大於零的值來影響排序結果,所以減法操做就能夠適當處理全部狀況。

操做方法

concat()方法

slice()方法

splice()方法

concat() 方法用於鏈接兩個或多個數組。
該方法不會改變現有的數組,而僅僅會返回被鏈接數組的一個副本。

<script type="text/javascript">

var a = [1,2,3];
document.write(a.concat(4,5));

</script>

輸出的結果:1,2,3,4,5

slice(start,end)方法
start 必需。規定從何處開始選取。若是是負數,那麼它規定從數組尾部開始算起的位置。也就是說,-1 指最後一個元素,-2 指倒數第二個元素,以此類推。
end 可選。規定從何處結束選取。該參數是數組片段結束處的數組下標。若是沒有指定該參數,那麼切分的數組包含從 start 到數組結束的全部元素。若是這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。
返回值:返回一個新的數組,包含從 start 到 end (不包括該元素)的 arrayObject 中的元素。

splice() 方法用於插入、刪除或替換數組的元素
語法:arrayObject.splice(index,howmany,element1,.....,elementX)

index 必需。規定從何處添加/刪除元素。
該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。

howmany 必需。規定應該刪除多少元素。必須是數字,但能夠是 "0"。
若是未規定此參數,則刪除從 index 開始到原數組結尾的全部元素。

element1 可選。規定要添加到數組的新元素。從 index 所指的下標處開始插入。
elementX 可選。可向數組添加若干元素。

返回值:若是從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。
說明:splice() 方法可刪除從 index 處開始的零個或多個元素,而且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。

下面簡要歸納一下slice()與splice()方法

slice(start, end); slice()方法返回從參數指定位置開始到當前數組末尾的全部項。若是有兩個參數,該方法返回起死和結束位置之間的項,但不包括結束位置的項。

var colors = ["red", "green", "blue", "yellow", "purple"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4);

console.log(colors2); // green, blue, yellow, purple
console.log(colors3); // green, blue, yellow

splice()有刪除,插入,替換的功能

刪除
須要兩個參數,要刪除的第一項的位置和要刪除的項數。

var colors = ["red", "green", "blue"];
var removed = colors.splice(0,1);
console.log(colors); // greeen, blue
console.log(removed); // red

插入
須要三個參數:起始位置、0(要刪除的項數)和要插入的項

var colors = ["red", "green", "blue"];
var removed = colors.splice(1,0,"yellow", "orange");
console.log(colors); // ["red", "yellow", "orange", "green", "blue"]
console.log(removed); // 返回空

替換
須要三個參數:起始位置、要刪除的項數和要插入的任意數量的項。

var colors = ["red", "green", "blue"];
var removed = colors.splice(1,1,"yellow", "orange");
console.log(colors);  // ["red", "yellow", "orange", "blue"]
console.log(removed); // ["green"]
相關文章
相關標籤/搜索