超詳細(xì)的javascript數(shù)組方法匯總
一、數(shù)組的常用方法
1:join();
將數(shù)組轉(zhuǎn)為字符串顯示。不輸入?yún)?shù),默認(rèn)以逗號(hào)連接;輸入?yún)?shù),則以參數(shù)連接。
var arr=[1,2,3];
console.log(arr.join()); // 1,2,3;
console.log(arr.join("_")); // 1_2_3;
console.log(arr); // [1,2,3];
原數(shù)組不變。
2:reverse();
將數(shù)組逆序排列,原數(shù)組被修改。
var arr=[1,2,3]; var arr2=arr.reverse(); console.log(arr2); // [3,2,1]; console.log(arr); // [3,2,1];
3:sort();
默認(rèn)按升序排列數(shù)組項(xiàng),調(diào)用每個(gè)數(shù)組項(xiàng)的toString()方法,然后比較得到的字符串,從字符串首位開始比較。
var arr=[2,12,14,21,5]; console.log(arr.sort()); //[12, 14, 2, 21, 5];
也可以傳入一個(gè)比較函數(shù)作為參數(shù)。如果第一個(gè)參數(shù)應(yīng)該在前,則比較函數(shù)返回一個(gè)小于0的值;反之第一個(gè)參數(shù)在后,這比較函數(shù)返回一個(gè)大于0的值;如果順序無關(guān)緊要,則比較函數(shù)返回0;
var arr=[2,12,14,21,5];
console.log(arr.sort(function(a,b){return a-b})); // [2,5,12,14,21];
var arr1=[2,12,14,21,5];
console.log(arr1.sort(function(a,b){return b-a})); // [21,14,12,5,2];
4:concat();
數(shù)組合并,原數(shù)組不變。
var arr=[1,2,3]; console.log(arr.concat(4,5)); // [1, 2, 3, 4, 5]; console.log(arr.concat([4,5],6)); // [1, 2, 3, 4, 5, 6]; console.log(arr.concat([[4,5],6])); // [1, 2, 3, [4, 5],6]; console.log(arr); // [1, 2, 3];
5:slice();
返回部分?jǐn)?shù)組,包含第一個(gè)參數(shù)所對(duì)應(yīng)的數(shù)組項(xiàng),但不包含第二個(gè)參數(shù)對(duì)應(yīng)的數(shù)組項(xiàng)。如果傳入的參數(shù)小于0,則從后往前數(shù),最后一項(xiàng)為-1。如果只傳入一個(gè)參數(shù),則返回的數(shù)組包含起始位置到數(shù)組結(jié)尾的所有元素。原數(shù)組不變。
var arr=[1,2,3,4,5]; console.log(arr.slice(1,3)); // [2,3]; console.log(arr.slice(1)); // [2,3,4,5]; console.log(arr.slice(1,-1)); // [2,3,4]; console.log(arr); // [1,2,3,4,5];
6:splice();
數(shù)組拼接:
1).刪除-用于刪除元素,兩個(gè)參數(shù),第一個(gè)參數(shù)(要?jiǎng)h除第一項(xiàng)的位置),第二個(gè)參數(shù)(要?jiǎng)h除的項(xiàng)數(shù));
2).插入-向數(shù)組指定位置插入任意項(xiàng)元素。三個(gè)參數(shù),第一個(gè)參數(shù)(其實(shí)位置),第二個(gè)參數(shù)(0),第三個(gè)參數(shù)(插入的項(xiàng));
3).替換-向數(shù)組指定位置插入任意項(xiàng)元素,同時(shí)刪除任意數(shù)量的項(xiàng),三個(gè)參數(shù)。第一個(gè)參數(shù)(起始位置),第二個(gè)參數(shù)(刪除的項(xiàng)數(shù)),第三個(gè)參數(shù)(插入任意數(shù)量的項(xiàng));
splice()返回一個(gè)由刪除元素組成的數(shù)組,或者如果沒有刪除元素就返回一個(gè)空數(shù)組。原數(shù)組被修改。
var arr=[1,2,3,4,5,6]; console.log(arr.splice(2)); // [3,4,5,6]; console.log(arr); // [1,2]; console.log(arr.splice(2,0,3,4,5,6)); // []; console.log(arr); // [1,2,3,4,5,6]; console.log(arr.splice(2,2)); // [3,4]; console.log(arr); // [1,2,5,6];
7:push()和pop()方法,unshift()和shift()方法;
push()和pop() 棧方法,后進(jìn)先出。原數(shù)組都發(fā)生改變。
push()方法在數(shù)組的尾部添加一個(gè)或多個(gè)元素,并返回?cái)?shù)組新的長(zhǎng)度。
pop()方法刪除數(shù)組的最后一個(gè)元素,減小數(shù)組的長(zhǎng)度并返回刪除的值。
unshift()和shift()隊(duì)列方法,先進(jìn)先出。原數(shù)組都發(fā)生改變。
unshift()方法在數(shù)組的頭部添加一個(gè)或多個(gè)元素,并改變已存在元素的索引,然后返回?cái)?shù)組新的長(zhǎng)度。
shift()方法刪除數(shù)組的第一個(gè)元素并將其返回,并改變已存在元素的索引。
var arr=[1,2,3]; console.log(arr.push(4)); //4; console.log(arr); //[1,2,3,4]; console.log(arr.pop()); //4; console.log(arr); //[1,2,3]; console.log(arr.unshift(0)); //4; console.log(arr); //[0,1,2,3]; console.log(arr.shift()); //0; console.log(arr); //[1,2,3];
8:forEach();
forEach()里第一個(gè)參數(shù)為該集合里的元素,第二個(gè)參數(shù)為集合里的索引,第三個(gè)參數(shù)為集合本身。

9:map();
map()對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組,原數(shù)組未被修改。

10:every()
對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)每一項(xiàng)都返回true,則返回true。

11:some()
對(duì)數(shù)組的每一項(xiàng)運(yùn)行給定函數(shù),如果該函數(shù)對(duì)任一項(xiàng)返回true,則返回true。

12:filter()
對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù),返回該函數(shù)會(huì)返回true的項(xiàng)組成的數(shù)組。

13:reduce()和reduceRight();
兩個(gè)方法都會(huì)迭代數(shù)組的所有項(xiàng),然后構(gòu)建一個(gè)最終返回的值。其中reduce()方法從數(shù)組的第一項(xiàng)開始,逐個(gè)遍歷到最后。而reduceRight()則從數(shù)組的最后一項(xiàng)開始,向前遍歷到第一項(xiàng)。數(shù)組未被修改。

二、擴(kuò)展方法
1:數(shù)組去重
function unique(array){
return array.filter(function(item,index){
return array.indexOf(item)==index;
})
};
var arr=[1,2,3,3,4,2,1,5];
console.log(unique(arr)); //[1,2,3,4,5];
function unique(arr){
var arr2=[arr[0]],
len=arr.length;
if(!len){
return;
}
for(var i=0;i<len;i++){
arr2.join(" ").indexOf(arr[i])<0?arr2.push(arr[i]):"";
}
return arr2;
}
var arr=[1,2,3,3,4,2,1,5];
console.log(uniq(arr)); //[1,2,3,4,5]
2:去掉數(shù)組中的空元素
function deleteNullInArray(array){
return array.filter(function(item){
return item!=null;
})
}
var arr=[1,2,null,,,5];
console.log(deleteNullInArray(arr)); //[1,2,5];
- JavaScript數(shù)組方法大全(推薦)
- JavaScript數(shù)組方法總結(jié)分析
- JavaScript學(xué)習(xí)筆記之ES6數(shù)組方法
- javascript中FOREACH數(shù)組方法使用示例
- javascript中數(shù)組方法匯總
- Javascript中數(shù)組方法匯總(推薦)
- 深入探密Javascript數(shù)組方法
- js數(shù)組方法擴(kuò)展實(shí)現(xiàn)數(shù)組統(tǒng)計(jì)函數(shù)
- javascript對(duì)數(shù)組的常用操作代碼 數(shù)組方法總匯
- 數(shù)組方法解決JS字符串連接性能問題有爭(zhēng)議
- JS中的數(shù)組方法筆記整理
相關(guān)文章
javaScript(JS)替換節(jié)點(diǎn)實(shí)現(xiàn)思路介紹
獲取要替換的節(jié)點(diǎn),這種方法只適用于IE瀏覽器以及適用于各種瀏覽器的寫法,感興趣的朋友可以參考下哈2013-04-04
JS簡(jiǎn)單實(shí)現(xiàn)城市二級(jí)聯(lián)動(dòng)選擇插件的方法
這篇文章主要介紹了JS簡(jiǎn)單實(shí)現(xiàn)城市二級(jí)聯(lián)動(dòng)選擇插件的方法,涉及javascript實(shí)現(xiàn)select遍歷與設(shè)置技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-08-08
原生JS實(shí)現(xiàn)圖片懶加載之頁面性能優(yōu)化
在項(xiàng)目開發(fā)中,我們往往會(huì)遇到一個(gè)頁面需要加載很多圖片的情況。這篇文章主要介紹了頁面性能優(yōu)化原生JS實(shí)現(xiàn)圖片懶加載 ,需要的朋友可以參考下2019-04-04
如何利用Web Speech API之speechSynthesis實(shí)現(xiàn)文字轉(zhuǎn)語音功能
Web Speech API使你能夠?qū)⒄Z音數(shù)據(jù)合并到Web應(yīng)用程序中,SpeechSynthesisUtterance是HTML5中新增的API,用于將指定文字合成為對(duì)應(yīng)的語音,這篇文章主要介紹了利用Web Speech API之speechSynthesis實(shí)現(xiàn)文字轉(zhuǎn)語音功能,需要的朋友可以參考下2024-06-06
Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))
JSON(JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式.這篇文章主要介紹了Json對(duì)象和字符串互相轉(zhuǎn)換json數(shù)據(jù)拼接和JSON使用方式詳細(xì)介紹(小結(jié))的相關(guān)資料,需要的朋友可以參考下2016-10-10

