很早就想做個總結(jié),難得今日有空能曾,總結(jié)一些常用的數(shù)組方法度硝,如下:
1.join
join(separator):將數(shù)組的元素組成一個字符串寿冕,以separator分割。省略的話則默認(rèn)以逗號分割驼唱,只接收一個參數(shù),即分隔符
var arr=[1,2,3]
arr.join()
//"1,2,3"
arr.join("a")
//"1a2a3"
注:原數(shù)組不變。
2.push
push():可向數(shù)組的末尾添加一個或多個元素辨赐,并返回新的長度。
var arr = [1, 2, 3];
arr.push(4,5,6)
6
console.log(arr) // [1, 2, 3, 4, 5, 6]
注:返回的是數(shù)組的長度掀序,原數(shù)組改變帆焕。
3.pop
pop():方法用于刪除數(shù)組的最后一個元素并返回刪除的元素不恭。
var arr = [1,2,3];
arr.pop();
3
console.log(arr) // [1, 2]
注:返回的是刪除的那個元素,原數(shù)組改變换吧。
4.shift
shift():方法用于把數(shù)組的第一個元素從其中刪除浑娜,并返回第一個元素的值式散。
var brr = [1,2,3];
brr.shift();
1
console.log(brr);//[2,3]
注:返回的是刪除的那個元素打颤,原數(shù)組改變。
5.unshift
unshift(): 方法可向數(shù)組的開頭添加一個或更多元素编饺,并返回新的數(shù)組長度乖篷。
var brr = [2, 3];
brr.unshift(5,6)
4
console.log(brr) //[5, 6, 2, 3]
注:返回的是新的數(shù)組長度透且,原數(shù)組改變
6.sort
sort():按升序排列數(shù)組,在排序時秽誊,sort()方法會調(diào)用每個數(shù)組的toString()轉(zhuǎn)型方法,然后比較得到的字符串锅论,以確定如何排序讼溺。
var arr = [12,34,9,23,51]
arr.sort()
console.log(arr) // [12, 23, 34, 51, 9]
注:原數(shù)組會改變.
提問:數(shù)值的升序和降序怎么辦?示例中最易,我用到了箭頭函數(shù),大家可以仔細(xì)斟酌下藻懒。
var arr = [12,34,9,23,51]
arr.sort((v1,v2) => v1-v2)
console.log(arr);// [9, 12, 23, 34, 51]
arr.sort((v1,v2) => v2-v1)
console.log(arr);// [51, 34, 23, 12, 9]
說明:如果想按照其他標(biāo)準(zhǔn)進(jìn)行排序,就需要提供比較函數(shù)嬉荆,該函數(shù)要比較兩個值归敬,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應(yīng)該具有兩個參數(shù) a 和 b弄慰,其返回值如下:
若 a 小于 b,在排序后的數(shù)組中 a 應(yīng)該出現(xiàn)在 b 之前陆爽,則返回一個小于 0 的值。
若 a 等于 b慌闭,則返回 0别威。
若 a 大于 b驴剔,則返回一個大于 0 的值。
7.reverse
reverse(): 方法用于顛倒數(shù)組中元素的順序丧失。
var arr = [1,3,5,6,77]
arr.reverse()
console.log(arr);//[77, 6, 5, 3, 1]
8.concat
concat() 方法用于連接兩個或多個數(shù)組豺妓。該方法不會改變現(xiàn)有的數(shù)組布讹,而僅僅會返回被連接數(shù)組的一個副本。
var crr = [1,3];
crr.concat(4,5)
返回: [1, 3, 4, 5]
console.log(crr);//[1, 3]
crr.concat([8,9,67]);
返回: [1, 3, 8, 9, 67]
console.log(crr);//[1, 3]
crr.concat(11,[12,34],34)
返回:[1, 3, 11, 12, 34, 34]
console.log(crr);//[1, 3]
注:原數(shù)組不改變
9.slice
slice():返回從原數(shù)組中指定開始下標(biāo)到結(jié)束下標(biāo)之間的項(xiàng)組成的新數(shù)組描验,可接受1到2個參數(shù),分別為要返回項(xiàng)的起始和結(jié)束位置膘流,只有一個參數(shù)絮缅,則返回從參數(shù)指定位置開始到數(shù)組末尾所有項(xiàng)呼股。如果有兩個參數(shù),返回起始到結(jié)束位置之間的項(xiàng)彭谁,不包括結(jié)束位置的項(xiàng)。
var drr = [1, 23, 45, 25, 67, 9, 18];
drr.slice(3)
返回: [25, 67, 9, 18]
console.log(drr);//[1, 23, 45, 25, 67, 9, 18]
drr.slice(2,4)
返回: [45, 25]
console.log(drr);//[1, 23, 45, 25, 67, 9, 18]
注:原數(shù)組不改變
10.splice
splice() 方法用于插入马靠、刪除或替換數(shù)組的元素奄抽。
刪除:可以刪除任意數(shù)量的項(xiàng)甩鳄,2個參數(shù)逞度,要刪除的第一項(xiàng)的位置和要刪除的項(xiàng)數(shù)妙啃。
插入:向指定位置插入任意數(shù)量的項(xiàng)俊戳,只需提供3個參數(shù):起始位置,0(要刪除的項(xiàng)數(shù))和要插入的項(xiàng)(多個)抑胎。
替換:可以向指定位置插入任意數(shù)量的項(xiàng),且同時刪除任意數(shù)量的項(xiàng)渐北,只需指定三個參數(shù),起始的位置赃蛛,要刪除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng)恃锉。插入的項(xiàng)數(shù)不必與刪除的項(xiàng)數(shù)相等呕臂。
splice()方法始終都會返回一個數(shù)組,該數(shù)組中包含從原始數(shù)組中刪除的項(xiàng)歧蒋。如果沒有刪除任何項(xiàng),則返回一個空數(shù)組谜洽。
var drr = [1, 23, 45, 25, 67, 9, 18];
drr.splice(2,3)// 刪除
返回: [45, 25, 67]
console.log(drr);//[1, 23, 9, 18]
var drr = [1, 23, 9, 18];
drr.splice(3,0,56,78,23,45)//插入
console.log(drr);// [1, 23, 9, 56, 78, 23, 45, 18]
var drr = [1, 23, 9, 56, 99, 78, 23, 45, 18];
drr.splice(4,3,78,99,76)//替換
返回: [99, 78, 23]
console.log(drr)// [1, 23, 9, 56, 78, 99, 76, 45, 18]
好了瘟芝,都快凌晨2點(diǎn)了褥琐,就總結(jié)這么多了。希望能與大家共勉敌呈。