1、Array.join(*)
? ??將數(shù)組中所有元素轉(zhuǎn)化為字符串拼接在一起奈惑,并返回一個字符串待侵,其中*號代表你要用什么分隔符來生成字符串瘾腰,默認為逗號 返回新字符串不改變原數(shù)組? ?
????var arr=[1,2,3,4,5];
????var brr=arr.join(",");
????console.log(arr); [1,2,3,4,5]
????console.log(brr); 1,2,3,4,5
2、 Array.reverse()
? ? 將數(shù)組中的元素顛倒順序悲敷,返回逆序的數(shù)組? ?此方法改變了原數(shù)組
????var arr=[1,2,3,4,5];
????var brr=arr.reverse()
????console.log(arr);[5,4,3,2,1]
????console.log(brr);[5,4,3,2,1]
3究恤、Array.sort()
? ? 將數(shù)組中的元素進行排序并返回排序后的數(shù)組,如果不給參數(shù)將按照字母進行排序 此方法改變原數(shù)組 后德,如果包含undefined部宿,將被排到數(shù)組尾部,默認排序區(qū)分大小寫瓢湃,不區(qū)分大小寫需要傳遞參數(shù)
? ??var arr=["b","k","h","s","a"];
????arr.sort()
????console.log(arr); ?["a","b","h","k","s"]
? ? 非字母表排序需要給sort傳遞一個比較函數(shù)窟赏。該函數(shù)的兩個參數(shù)決定了他的兩個參數(shù)在排好序的數(shù)組中的先后順序,假如第一個參數(shù)在前應(yīng)該返回一個小于0的數(shù)箱季。反之涯穷,第一個參數(shù)在后應(yīng)該返回一個大于0的數(shù)。假設(shè)兩個值相等(排序無關(guān)緊要)返回0
? ??????var arr=[1,23,2,333,45,5,666];
????????arr.sort()
????????console.log(arr);[1,2,23,333,45,5,666]//按照Unicode編碼排序
????????arr.sort((a,b)=>{
????????????return a-b;//升序
? ? ? ? ? })
? ? ? ? ?console.log(arr);?[1, 2, 5, 23, 45, 333, 666]
?????????arr.sort((a,b)=>{
????????????return b-a;//降序
? ? ? ? ? })
????????console.log(arr); [666, 333, 45, 23, 5, 2, 1]
4藏雏、Array.concat()
? ? 創(chuàng)建并返回一個新的數(shù)組拷况,不改變原數(shù)組,總的來說就是講數(shù)組和參數(shù)拼接在一起
? ??var arr=[1,2,3,4];
????var brr=arr.concat(4,5);
????console.log(arr);[1,2,3,4]
????console.log(brr);[1,2,3,4,4,5]
5掘殴、Array.slice(star,end)
? ? 返回指定數(shù)組的一個片段或子數(shù)組赚瘦。兩個參數(shù)代表片段的開始和結(jié)束位置。含左不含右(包含起始端不包含結(jié)束端)奏寨。如果指定一個參數(shù)那就是從參數(shù)開始到結(jié)束起意。如果包含負數(shù),-1代表最后一個元素(結(jié)尾端以-1開始起)病瞳。 此方法不修改原數(shù)組? ??
????var arr=[1,2,3,4,5];
????console.log(arr.slice(0,3));[1,2,3]
????console.log(arr.slice(3));[4,5]
????console.log(arr.slice(1, -1));[2,3,4]
????console.log(arr.slice(-3, -2));[3]
6揽咕、Array.splice(star,num悲酷,..)
? ?在數(shù)組中插入或刪除的通用方法。此方法會修改原數(shù)組?亲善。第一個參數(shù)指定了插入或刪除的起始位置设易,第二個參數(shù)指定了要刪除的個數(shù),如果神略蛹头,那么從起始位置到結(jié)尾都將被刪除顿肺。此方法返回的是刪除元素組成的數(shù)組,如果沒有刪除元素就返回一個空數(shù)組
????var arr=[1,2,3,4,5,6,7,8,9];
????console.log(arr.splice(4));[5,6,7,8,9]
????console.log(arr);[1,2,3,4]
????console.log(arr.splice(1,2));[2,3]
????console.log(arr);[1,4]
????console.log(arr.splice(1,1));[4]
????console.log(arr);[1]
前面兩個參數(shù)指定了起始位置和刪除的數(shù)量渣蜗,后面人一個數(shù)的參數(shù)指定了需要插入到數(shù)組中的元素
? ??var arr=[1,2,3,4,5];
????console.log(arr.splice(2,0,"a","b"));[] 沒有刪除元素
????console.log(arr);[1,2,"a","b",3,4,5]
????console.log(arr.splice(2,2, [7,8],9));["a","b"]
????console.log(arr);[1,2, [7,8],9,3,4,5]
7屠尊、push()和pop()
兩個方法允許將數(shù)組當(dāng)做棧來使用,push是向數(shù)組的尾部追加一個或多個元素耕拷,并返回數(shù)組的新的長度讼昆。pop()則相反,它刪除數(shù)組中的最后一個元素斑胜,減小數(shù)組長度并返回刪除的值控淡。兩種方法都修改了原數(shù)組。
? ??var arr=[];
????console.log(arr.push(1,2));//2
????console.log(arr);//[1, 2]
????console.log(arr.pop());//2
????console.log(arr);//[1]
????console.log(arr.push(3));//2
????console.log(arr);//[1, 3]
????console.log(arr.pop());//3
????console.log(arr);//[1]
????console.log(arr.push([4,5]));//2
????console.log(arr);//[1, [4, 5]]
????console.log(arr.pop());//[4, 5]
????console.log(arr);//[1]
????console.log(arr.pop());//1
????console.log(arr);//[]
注意:push返回新數(shù)組長度止潘,pop返回刪除的元素
8掺炭、unshift()和shift()
? ? 這兩個方法與第七條正好相反,是在數(shù)組的頭部進行操作凭戴。unshift()在數(shù)組的頭部添加一個或多個元素涧狮,并將已存在的元素移動到更高的索引位置來獲得更多的空間,返回新數(shù)組的長度么夫。shift()刪除數(shù)組的第一個元素并返回其值者冤。
????var arr=[];
????console.log(arr.unshift(1));//1
????console.log(arr);//[1]
????console.log(arr.unshift(2));//2
????console.log(arr);//[2, 1]
????console.log(arr.shift());//2
????console.log(arr);//[1]
????console.log(arr.unshift(3,[4,5]));//3
????console.log(arr);//?[3, [4,5], 1]
????console.log(arr.shift());//3
????console.log(arr);//[ [4,5], 1]
????console.log(arr.shift());//[4, 5]
????console.log(arr);//[1]
????console.log(arr.shift());//1
????console.log(arr);//[]
注意:多個參數(shù)插入是一次性插入的,而非一個一個插入档痪,所以不會改變插入式的順序