詳解JavaScript數(shù)組的常用方法
數(shù)組的常用方法
- push() 改方法可以向數(shù)組末尾添加一個或多個元素,并返回數(shù)組的新長度
- 可以將添加的元素作為方法的參數(shù)傳遞,這些元素會自動添加加到數(shù)組的末尾
- 改方法會將數(shù)組新的長度作為返回值返回
var arr = ["小和尚","小猴","小豬","小沙","小龍"]; var result = arr.push("江流","心猿","木龍","刀圭","意馬"); console.log("返回值:"+result); console.log("新數(shù)組:"+arr);
pop()
該方法可以刪除數(shù)組最后一個元素,并將被刪除的元素作為返回值
var arr = ["江流","心猿","木龍","刀圭","意馬"]; var result = arr.pop(); console.log("返回值:"+result); console.log("新數(shù)組:"+arr);
unshift()
- 想數(shù)組開頭添加一個或多個元素,并返回新的數(shù)組長度
- 向前邊插入元素以后,其他的元素索引會依次調(diào)整
var arr = ["江流","心猿","木龍","刀圭","意馬"]; var result = arr.unshift(); console.log("返回值:"+result); console.log("新數(shù)組:"+arr);
shift()
可以刪除數(shù)組第一個元素,并將被刪除的元素作為返回值
var arr = ["江流","心猿","木龍","刀圭","意馬"]; var result = arr.shift(); console.log("返回值:"+result); console.log("新數(shù)組:"+arr);
slice()
- 可以用來從數(shù)組提取指定元素
- 該方法不會改變元素數(shù)組,而是將截取到的元素封裝到一個新的數(shù)組中返回
參數(shù):
- 第一個參數(shù):截取開始位置的索引,包含開始索引
- 第二個參數(shù):截取結(jié)束位置的索引,不包含結(jié)束索引(截取到數(shù)組不包括該值)
- 第二個參數(shù)可以省略不寫,此時會截取從開始索引往后的所有元素
- 索引可以傳遞一個負值,如果傳遞一個負值,則從后往前計算
- 1倒數(shù)第一個
- 2倒數(shù)第二個
- 索引可以傳遞一個負值,如果傳遞一個負值,則從后往前計算
var arr = ["江流","心猿","木龍","刀圭","意馬"]; var result = arr.slice(1,3); console.log("截取到的數(shù)組:"+result); console.log("原數(shù)組不會發(fā)生改變:"+arr);
splice()
- 可以用來刪除數(shù)組中的指定元素
- 使用該方法會影響到原數(shù)組,會將指定元素從原數(shù)組中刪除,并將被刪除的元素作為返回值
參數(shù)
- 第一個參數(shù):表示開始位置的索引,包含開始索引
- 第二個參數(shù):表示刪除的個數(shù),不包含結(jié)束索引(截取到數(shù)組不包括該值)
var arr = ["江流","心猿","木龍","刀圭","意馬"]; var result = arr.splice(1,3); console.log("刪除到的元素:"+result); console.log("原數(shù)組會發(fā)生改變:"+arr);
- 第三個參數(shù)及以后:可以傳遞一些新的元素,這些元素將hi自動插入到開始位置索引前邊
var arr = ["江流","心猿","木龍","刀圭","意馬"]; var result = arr.splice(1,2,"孫悟空","豬八戒"); console.log("刪除的元素:"+result); console.log("原數(shù)組會發(fā)生改變:"+arr);
數(shù)組元素去重
var arr = [1, 1, 5, 6, 4, 5, 2, 3, 7, 9, 4, 4, 4, 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);//刪除當(dāng)前j所在位置的元素 j--;//刪除j所在元素后,后邊元素會自動補位,需要重新在j這位置重新比較一次 } } } console.log(arr);
concat()
- 該方法可以連接兩個或多個數(shù)組,并將新的數(shù)組返回
- 該方法不會對原數(shù)組產(chǎn)生影響
var arr1 = ["江流","心猿","木龍","刀圭","意馬"]; var arr2 = ["唐僧","孫悟空","豬八戒","沙僧","白龍馬"]; var result = arr1.concat(arr2,"心猿意馬"); console.log("新數(shù)組:"+result);
join()
- 該方法可以將數(shù)組轉(zhuǎn)換為一個字符串
- 該方法不會對原數(shù)組產(chǎn)生影響,而是將轉(zhuǎn)換后的字符串作為結(jié)果返回
- 在
join()
中可以指定一個字符串作為參數(shù),這個字符串將會成為數(shù)組中元素的連接詞,如果不指定連接詞符,則默認使用,作為連接符
var arr = ["江流","心猿","木龍","刀圭","意馬"]; var result = arr.join("-"); console.log("新數(shù)組:"+result); console.log("result的類型為:"+typeof(result));
reverse()
- 該方法用來反轉(zhuǎn)數(shù)組(前面的元素到后邊去,后邊的到前邊去)
- 該方法會影響到原數(shù)組
var arr = ["江流","心猿","木龍","刀圭","意馬"]; arr.reverse(); console.log("顛倒后的arr數(shù)組:"+arr);
sort()
該方法可以對數(shù)組中的元素進行排序該方法會影響原數(shù)組,則默認會按照Unicode編碼進行排序
var arr = ["a","d","g","f","k",'v',"d","x"]; arr.sort(); console.log("排序后的arr數(shù)組:"+arr);
即使對于純數(shù)字的數(shù)組,使用sort()排序時,也會按照Unicode編碼進行排序,所以對于數(shù)字進行排序,可能會得到錯誤答案
var arr = [2,14,12,3,5,53,7,31,13]; arr.sort(); console.log("排序后的arr數(shù)組:"+arr);
可以自己指定排序的規(guī)則
在sort()添加一個回調(diào)函數(shù),來指定排序規(guī)則
回調(diào)函數(shù)中需要定義兩個形參 (a, b)
瀏覽器會分別使用數(shù)組中的元素作為實參去調(diào)用回調(diào)函數(shù)
瀏覽器會根據(jù)回調(diào)函數(shù)的返回值來決定元素的順序
- 如果返回一個大于0的值,則元素會交換位置
- 如果返回一個小于0的值,則元素位置不變
- 如果返回一個0,則認為兩個元素相等,也不交換位置
- 如果需要升序排序,則返回a - b
- 如果需要降序排序,則返回b - a
var arr = [2, 14, 12, 3, 5, 53, 7, 31, 13]; arr.sort(function (a, b) { return a - b;//升序 //return b - a;降序 }); console.log("排序后的arr數(shù)組:" + arr);
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Ant Design Blazor 組件庫的路由復(fù)用多標簽頁功能
在 Ant Design Blazor 組件庫中實現(xiàn)多標簽頁組件的呼聲日益高漲。于是,我利用周末時間,結(jié)合 Blazor 內(nèi)置路由組件實現(xiàn)了基于 Tabs 組件的 ReuseTabs 組件,需要的朋友跟隨小編一起看看吧2021-07-07vscode錄音及語音實時轉(zhuǎn)寫插件開發(fā)并在工作區(qū)生成本地mp3文件附踩坑日記!
以目前的vscode版本來說,作者并沒有開放訪問本地媒體權(quán)限,所以插件市場里面的所有語音相關(guān)插件也并沒有直接獲取vscode的媒體權(quán)限,這篇文章主要介紹了vscode錄音及語音實時轉(zhuǎn)寫插件開發(fā)并在工作區(qū)生成本地mp3文件?踩坑日記!,需要的朋友可以參考下2023-05-05js變量值傳到php過程詳解 將php解析成數(shù)據(jù)
這篇文章主要介紹了js變量值傳到php過程詳解 將php解析成數(shù)據(jù),傳參數(shù)去后臺,用ajax,或者原生js方式拼接url。明白原理,洞悉系統(tǒng)是先解析php,再執(zhí)行html代碼和js代碼。,需要的朋友可以參考下2019-06-06JavaScript實現(xiàn)圖片的放大縮小及拖拽功能示例
這篇文章主要介紹了JavaScript實現(xiàn)圖片的放大縮小及拖拽功能,結(jié)合實例形式分析了javascript鼠標事件響應(yīng)及針對圖形元素的屬性操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-05-05javascript事件捕獲機制【深入分析IE和DOM中的事件模型】
這篇文章主要介紹了javascript事件捕獲機制,結(jié)合實例形式分析了冒泡的原理、事件捕獲、各瀏覽器事件處理機制與IE和DOM中的事件模型等,需要的朋友可以參考下2016-12-12