JS基礎入門篇(十)— 陣列方法

樑志芳發表於2018-05-22

1.join

作用:陣列通過指定字元拼接成字串
語法: string arr.join([separator = `,`]);
引數: separator可選,如果省略的話,預設為一個逗號。如果 seprator 是一個空字串,那麼陣列中的所有元素將被直接連線
返回值: 拼接後的字串。

<script>
        var arr=[2,3,4,5];
        console.log(arr.join());//"2,3,4,5"
        console.log(arr.join(""));//"2345"
        console.log(arr.join("+"));//"2+3+4+5"
        console.log(arr);//[2,3,4,5]
</script>

2.push

作用:往陣列的末尾新增一個或者多個元素。
語法:number arr.push(element1, …, elementN);
引數:elementN,一個或多個元素。
返回值:新陣列的length。
注意:會修改原陣列。

 <script>
        var att=[1,2,3,4];
        console.log(att.push("a","b"));//6
        console.log(att);//[1,2,3,4,"a","b"];
 </script>

3.unshift

作用:往陣列的頭部新增一個或者多個元素。
語法:number arr.push(element1, …, elementN);
引數:elementN,一個或多個元素。
返回值:新陣列的length。
注意:會修改原陣列。

 <script>
        var att=[1,2,3,4];
        console.log(att.unshift("a","b"));//6
        console.log(att);//["a","b",1,2,3,4];
 </script>

4.pop

作用: 刪除陣列最後 一個 元素
語法: mixed arr.pop();
返回值: 被刪除的那一個元素。
注意:會修改原陣列。

<script>
    var arr=[1,2,3,4];
    console.log(arr.pop());//4
    console.log(arr);//[1,2,3]
</script>

5.shift

作用: 刪除陣列 第一個 元素
語法: mixed arr.pop();
返回值: 被刪除的那一個元素。
注意:會修改原陣列。

<script>
    var arr=[1,2,3,4];
    console.log(arr.shift());//1
    console.log(arr);//[2,3,4]
</script>

6.concat

作用: 將傳入的陣列或非陣列值原陣列合並,組成一個新的陣列並返回.
語法: array array.concat(value1, value2, …, valueN);
引數: valueN是指需要與原陣列合並的陣列或非陣列值.
返回值: 合併後的陣列
注意: 不會修改原陣列的內容。

<script>
        var att=[1,2,3];
        var attO=["a","b"];
        var attT=[5,true];
        console.log(att.concat(10,attO,attT));//[1,2,3,10,"a","b",5,tru]
        console.log(att);//[1,2,3]
</script>

7.reverse

作用:顛倒陣列中元素的位置.
語法: array arr.reverse()
返回值: 顛倒順序後的陣列
注意: 改變原陣列.

<script>
    var arr = [1,2,3,6,5,4];
    var res = arr.reverse();
    res.push( "a" );
    console.log( res );//[4,5,6,3,2,1,"a"]
    console.log( arr );//[4,5,6,3,2,1,"a"]
</script>

8.slice

作用:擷取**陣列中一部分,並返回這個新的陣列.
語法: array arr.slice([begin[,end]]);
返回值: 擷取後的新的陣列
注意: 包含起始位置,不包含結束位置,不會改變原陣列.
什麼都不傳入,則是原陣列。

<script>
    var arr = ["a","b","c","d"];
//    var res = arr.slice( 1,3 );//["b","c"]
//    var res = arr.slice( 3,1 );//[]
    var res = arr.slice( -3,-1 );//["b","c"]
    var res = arr.slice();//["a","b","c","d"]
    console.log( res );
    console.log( arr );//["a","b","c","d"]
</script>

9.splice

作用:用新元素替換舊元素,以此修改陣列的內容
語法:array array.splice(start, deleteCount[, item1[, item2[, …]]])
引數:

    - start    起始位置
    - deleteCount    刪除長度
    - item    新增的內容

返回值: 由被刪除的元素組成的一個陣列
注意修改了原陣列的內容。

<script>
    var att="Liangzhifang".split("");
    console.log(att.splice(2,4,["a"]));//["a","n","g","z"]
    console.log(att);//["L","i",["a"],"h","i","f","a","n","g"]
</script>

10.sort

作用: 對陣列的元素進行排序。
語法: array arr.sort([compareFunction]);
引數: compareFunction可選。用來指定按某種順序進行排列的函式。如果省略,元素按照轉換為的字串的諸個字元的Unicode位點進行排序。
返回值: 排序後的陣列.

<script>
    //當什麼都不傳入的時候,sort()預設由小到大排列。
    var attr=[9,5,4,3,2];
    console.log(attr.sort());//[2, 3, 4, 5, 9]
    //傳入function的時候,sort()內的function返回值大於0,由小到大排列。
    var attrO=[9,5,4,3,2];
    console.log(attrO.sort(function () {
        return 1;
    }));//[2, 3, 4, 5, 9]
    //傳入function的時候,sort()內的function返回值小於或者等於0,陣列序列不變。
    var attrT=[9,5,4,3,2];
    console.log(attrT.sort(function () {
        return -1;
    }));// [9, 5, 4, 3, 2]
    //由於sort內部是隨機抽取兩個值,我們在利用function函式的返回值,大於0的時候,交換位置。小於或者等於0的時候不變,來排序。
    //以下是由小到大排序
    var attrTh=[9,5,4,3,2];
    console.log(attrTh.sort(function (a,b) {
        return a-b;
    }));// [2, 3, 4, 5, 9]
    //以下是由大到小排序
    var attrF=[9,5,4,3,2];
    console.log(attrF.sort(function (a,b) {
        return b-a;// [9, 5, 4, 3, 2]
    }));

</script>

相關文章