詳解JavaScript陣列的常用方法
阿新 • • 發佈:2021-11-19
目錄
- 陣列的常用方法
- 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);
總結
本篇文章就到這裡了,希望能夠給你帶來幫助,也希望您能夠多多關注我們的更多內容!