1. 程式人生 > 程式設計 >詳解JavaScript陣列的常用方法

詳解JavaScript陣列的常用方法

目錄
  • 陣列的常用方法
  • pop()
  • unshift()
  • shift()
  • slice()
  • splice()
    • 陣列元素去重
  • concat()
    • join()
      • reverse()
        • sort()
          • 總結

            陣列的常用方法

            • push() 改方法可以向陣列末尾新增一個或多個元素,並返回陣列的新長度
            • 可以將新增的元素作為方法的引數傳遞,這些元素會自動新增加到陣列的末尾
            • 改方法會將陣列新的長度作為返回值返回
            var arr = ["小和尚","小猴","小豬","小沙","小龍"];
            var result = arr.push("江流","心猿","木龍","刀圭","意馬");
            console.log("返回值:"+result);
            console.log("新陣列:"+arr);
            

            在這裡插入圖片描述

            pop()

            該方法可以刪除陣列最後一個元素,並將被刪除的元素作為返回值

            var arr = ["江流","意馬"];
            var result = arr.pop();
            console.log("返回值:"+result);
            console.log("新陣列:"+arr);
            

            在這裡插入圖片描述

            unshift()

            • 想陣列開頭新增一個或多個元素,並返回新的陣列長度
            • 向前邊插入元素以後,其他的元素索引會依次調整
            var arr = ["江流","意馬"];
            var result = arr.unshift();
            console.log("返回值:"+result);
            console.log("新陣列:"+arr);
            

            在這裡插入圖片描述

            shift()

            可以刪除陣列第一個元素,並將被刪除的元素作為返回值

            var arr = ["江流","意馬"];
            var result = arr.shift();
            console.log("返回值:"+result);
            console.log("新陣列:"+arr);
            

            在這裡插入圖片描述

            slice()

            • 可以用來從陣列提取指定元素
            • 該方法不會改變元素陣列,而是將擷取到的元素封裝到一個新的陣列中返回

            引數:

            • 第一個引數:擷取開始位置的索引,包含開始索引
            • 第二個引數:擷取結束位置的索引,不包含結束索引(擷取到陣列不包括該值)
            • 第二個引數可以省略不寫,此時會擷取從開始索引往後的所有元素
              • 索引可以傳遞一個負值,如果傳遞一個負值,則從後往前計算
              • 1倒數第一個
              • 2倒數第二個
            var arr = ["江流","意馬"];
            var result = arr.slice(1,3);
            console.log("擷取到的陣列:"+re客棧sult);
            console.log("原陣列不會發生改變:"+arr);
            

            在這裡插入圖片描述

            splice()

            • 可以用來刪除陣列中的指定元素
            • 使用該方法會影響到原陣列,會將指定元素從原陣列中刪除,並將被刪除的元素作為返回值

            引數

            • 第一個引數:表示開始位置的索引,包含開始索引
            • 第二個引數:表示刪除的個數,不包含結束索引(擷取到陣列不包括該值)
            var arr = ["江流","意馬"];
            var result = arr.splice(1,3);
            console.log("刪除到的元素:"+result);
            console.log("原陣列會發生改變:"+arr);
            

            在這裡插入圖片描述

            • 第三個引數及以後:可以傳遞一些新的元素,這些元素將hi自動插入到開始位置索引前邊
            var arr = ["江流",2,"孫悟空","豬八戒");
            console.log("刪除的元素:"+result);
            console.log("原陣列會發生改變:"+arr);
            

            在這裡插入圖片描述

            陣列元素去重

            var arr = [1,1,5,6,4,3,7,9,1];
            for (let i = 0; i < arr.length; i++) {
                for (let j = i + 1; j < arr.length; j++) {
                    if (arr[i] === arr[j]) {
                        arr.splice(j,1);//刪除當前j所在位置的元素
                        j--;//刪除j所在元素後,後邊元素會自動補位,需要重新在j這位置重新比較一次
                    }
                }
            }
            console.log(www.cppcns.comarr);
            

            concat()

            • 該方法可以連線兩個或多個數組,並將新的陣列返回
            • 該方法不會對原陣列產生影響
            var arr1 = ["江流","意馬"];
            var arr2 = ["唐僧","豬八戒","沙僧","白龍馬"];
            
            var result = arr1.concat(arr2,"心猿意馬");
            console.log("新陣列:"+result);
            

            在這裡插入圖片描述

            join()

            • 該方法可以將陣列轉換為一個字串
            • 該方法不會對原陣列產生影響,而是將轉換後的字串作為結果返回
            • join()中可以指定一個字串作為引數,這個字串將會成為陣列中元素的連線詞,如果不指定連線詞符,則預設使用,作為連線符
            var arr = ["江流","意馬"];
            
            var result = arr.join("-");
            console.log("新陣列:"+result);
            console.log("result的型別為:"+typeof(result));
            

            在這裡插入圖片描述

            reverse()

            • 該方法用來反轉陣列(前面的元素到後邊去,後邊的到前邊去)
            • 該方法會影響到原陣列
            var arr = ["江流","意馬"];
            
            arr.reverse();
            console.log("顛倒後的arr陣列:"+arr);
            

            在這裡插入圖片描述

            sort()

            該方法可以對陣列中的元素進行排序該方法會影響原陣列,則預設會按照Unicode編碼進行排序

            var arr = ["a","d","g","f","k",'v',"x"];
            arr.sort();
            console.log("排序後的arr陣列:"+arr);
            

            在這裡插入圖片描述

            即使對於純數字的陣列,使用sort()排序時,也會按照Unicode編碼進行排序,所以對於數字進行排序,可能會得到錯誤答案

            var arr = [2,14,12,53,31,13];
            arr.sort();
            console.log("排序後的arr陣列:"+arr);
            

            在這裡插入圖片描述

            可以自己指定排序的規則

            在sort()新增一個回撥函式,來指定排序規則

            回撥函式中需要定義兩個形參(a,b)

            瀏覽器會分別使用陣列中的元素作為實參去呼叫回撥函式

            瀏覽器會根據回撥函式的返回值來決定元素的順序

            • 如果返回一個大於0的值,則元素會交換位置
            • 如果返回一個小於0的值,則元素位置不變
            • 如果返回一個0,則認為兩個元素相等,也不交換位置
            • 如果需要升序排序,則返回a - b
            • 如果需要降序程式設計客棧排序,則返回b - a
            var arr = [2,13];
            arr.sort(function (a,b) {
               return a - b;//升序
               //return b - a;降序 
            });
            console.log("排序後的arr陣列:" + arr);
            

            在這裡插入圖片描述

            總結

            本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注我們的更多內容!