很早就想做個總結,難得今日有空,總結一些常用的數(shù)組方法,如下:
1.join
join(separator):將數(shù)組的元素組成一個字符串,以separator分割。省略的話則默認以逗號分割,只接收一個參數(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()轉型方法,然后比較得到的字符串,以確定如何排序。
var arr = [12,34,9,23,51]
arr.sort()
console.log(arr) // [12, 23, 34, 51, 9]
注:原數(shù)組會改變.
提問:數(shù)值的升序和降序怎么辦?示例中,我用到了箭頭函數(shù),大家可以仔細斟酌下。
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]
說明:如果想按照其他標準進行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應該具有兩個參數(shù) a 和 b,其返回值如下:
若 a 小于 b,在排序后的數(shù)組中 a 應該出現(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ù)組中指定開始下標到結束下標之間的項組成的新數(shù)組,可接受1到2個參數(shù),分別為要返回項的起始和結束位置,只有一個參數(shù),則返回從參數(shù)指定位置開始到數(shù)組末尾所有項。如果有兩個參數(shù),返回起始到結束位置之間的項,不包括結束位置的項。
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ù)量的項,2個參數(shù),要刪除的第一項的位置和要刪除的項數(shù)。
插入:向指定位置插入任意數(shù)量的項,只需提供3個參數(shù):起始位置,0(要刪除的項數(shù))和要插入的項(多個)。
替換:可以向指定位置插入任意數(shù)量的項,且同時刪除任意數(shù)量的項,只需指定三個參數(shù),起始的位置,要刪除的項數(shù)和要插入的任意數(shù)量的項。插入的項數(shù)不必與刪除的項數(shù)相等。
splice()方法始終都會返回一個數(shù)組,該數(shù)組中包含從原始數(shù)組中刪除的項。如果沒有刪除任何項,則返回一個空數(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點了,就總結這么多了。希望能與大家共勉。