JavaScript中的數(shù)組操作介紹
JavaScript中的數(shù)組對(duì)象自帶了一些方法,可以通過(guò)使用這些方法來(lái)對(duì)數(shù)組進(jìn)行操作。
join()
可以使用join()方法將數(shù)組中的成員合并到一個(gè)字符串中:
var o = [1,2,3];
console.log(o.join());//1,2,3
console.log(o.join(" "));//1 2 3
var emptyArray = new Array(10);
console.log(emptyArray.join("-"));//----------
從上面的例子中可以看到,如果join()方法不帶參數(shù),那么JavaScript會(huì)用逗號(hào)作為分隔符將所有的成員合并到一個(gè)字符串中;如果join()方法接受參數(shù),那么這個(gè)參數(shù)會(huì)作為分隔符來(lái)使用。
reverse()
可以使用reverse()方法將數(shù)組中的成員順序進(jìn)行顛倒:
//reverse()
o.reverse();
console.log(o);//[3,2,1]
可以看到,調(diào)用reverse()語(yǔ)句后,數(shù)組自身將發(fā)生改變。
執(zhí)行reverse()語(yǔ)句的返回結(jié)果為發(fā)生改變后的數(shù)組對(duì)象。
sort()
可以使用sort()方法對(duì)數(shù)組中的成員進(jìn)行排序(默認(rèn)以字母順序排列)。與reverse()語(yǔ)句一樣,sort()語(yǔ)句會(huì)對(duì)數(shù)組自身進(jìn)行修改并返回修改后的數(shù)組對(duì)象:
var a = ["Phone", "Mobile",,,"Canon"];
a.sort();
console.log(a);//["Canon", "Mobile", "Phone", undefined, undefined]
var b = [33,44,111];
console.log(b.sort());//[111, 33, 44]
console.log(b.sort(function(a,b){return a-b}));//[33, 44, 111]
可以看到,sort()語(yǔ)句還接受一個(gè)function作為參數(shù)來(lái)實(shí)現(xiàn)自定義排序。
concat()
可以使用concat()方法對(duì)數(shù)組進(jìn)行拼接:
var c = [1,2,3];
console.log(c.concat(4));//[1, 2, 3, 4]
console.log(c.concat(5,6));//[1, 2, 3, 5, 6]
console.log(c.concat([7,8]));//[1, 2, 3, 7, 8]
console.log(c.concat([9,10], [11,12]));//[1, 2, 3, 9, 10, 11, 12]
console.log(c.concat([42,43,[44,45]]));//[1, 2, 3, 42, 43, [44, 45]]
console.log(c);//[1, 2, 3]
可以看到,與reverse()和sort()不同,concat()語(yǔ)句僅僅只是返回拼接后的結(jié)果而已,對(duì)數(shù)組自身不會(huì)產(chǎn)生任何修改。
slice()
可以使用slice()語(yǔ)句來(lái)獲取數(shù)組中的子數(shù)組(sub-array):
var d = [1,2,3,4,5,6];
console.log(d.slice(0,3));//[1,2,3]
console.log(d.slice(3,1));//[]
與concat()一樣,slice()語(yǔ)句僅僅只是返回操作后的結(jié)果而已,對(duì)數(shù)組自身不會(huì)產(chǎn)生任何修改。對(duì)于slice()語(yǔ)句中的兩個(gè)參數(shù),JavaScript遵循“前包括后不包括”的原則:第一個(gè)參數(shù)所指定的數(shù)組成員會(huì)出現(xiàn)在子數(shù)組中,而第二個(gè)參數(shù)所指定的數(shù)組成員則不會(huì)出現(xiàn)。
splice()
可以使用splice()語(yǔ)句來(lái)對(duì)數(shù)組進(jìn)行插入和敲除操作。其第一個(gè)參數(shù)指定插入或敲除的位置(位置成員),第二個(gè)參數(shù)指定敲除成員的數(shù)目(從位置成員開(kāi)始敲除),從第三個(gè)參數(shù)開(kāi)始,所有的參數(shù)都會(huì)被插入到數(shù)組中(從位置成員之前進(jìn)行插入)。splice()語(yǔ)句返回的結(jié)果為被敲除的數(shù)組成員所組成的數(shù)組。與concat()和slice()不同,splice()會(huì)對(duì)數(shù)組自身產(chǎn)生修改。
var e = [1,2,3,4,5,6,7];
console.log(e.splice(1,2));//[2,3]
console.log(e);//[1,4,5,6,7]
console.log(e.length);//5
e.splice(1,0,2,3,[4,5]);
console.log(e);//[1, 2, 3, [4, 5], 4, 5, 6, 7]
相關(guān)文章
javascript實(shí)現(xiàn)瀑布流自適應(yīng)遇到的問(wèn)題及解決方案
這篇文章主要介紹了javascript實(shí)現(xiàn)瀑布流自適應(yīng)遇到的問(wèn)題及解決方案,需要的朋友可以參考下2015-01-01JavaScript使用簡(jiǎn)單正則表達(dá)式的數(shù)據(jù)驗(yàn)證功能示例
這篇文章主要介紹了JavaScript使用簡(jiǎn)單正則表達(dá)式的數(shù)據(jù)驗(yàn)證功能,結(jié)合實(shí)例形式分析了JS針對(duì)表單輸入內(nèi)容的簡(jiǎn)單正則驗(yàn)證操作技巧,需要的朋友可以參考下2017-01-01js使用visibilitychange處理頁(yè)面關(guān)閉事件
本文主要介紹了js使用visibilitychange處理頁(yè)面關(guān)閉事件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06js實(shí)現(xiàn)滾動(dòng)條滾動(dòng)到頁(yè)面底部繼續(xù)加載
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)滾動(dòng)條滾動(dòng)到頁(yè)面底部繼續(xù)加載,原理很簡(jiǎn)單,就是為window添加一個(gè)scroll事件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-12-12List the Codec Files on a Computer
List the Codec Files on a Computer...2007-06-06小程序自定義單頁(yè)面、全局導(dǎo)航欄的實(shí)現(xiàn)代碼
這篇文章主要介紹了小程序自定義單頁(yè)面、全局導(dǎo)航欄的實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03動(dòng)態(tài)顯示可輸入的字?jǐn)?shù)提示還可以輸入的字?jǐn)?shù)
這篇文章主要介紹了動(dòng)態(tài)顯示可輸入的字?jǐn)?shù)提示還可以輸入的字?jǐn)?shù),需要的朋友可以參考下2014-04-04wavesurfer.js繪制音頻波形圖的實(shí)現(xiàn)
這篇文章主要介紹了wavesurfer.js繪制音頻波形圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04