在js中,數組做爲一個特殊的對象。是咱們經常使用的數據格式。今天就來梳理一下經常使用的數組方法.數組
幾種基礎的就簡單介紹一下:
建立數組函數
var arr1 = new Array(); //括號能夠傳參,指定數組長度。目前arr1.length是0 var arr2 = new Array(3);//arr2.length是3 var arr3 = new Array(1,2,3,4); //當傳多個參數時,js會把這些參數做爲數組的初始值。 console.log(arr3); // [1,2,3,4]
new Array()建立數組有一個須要注意的地方。只傳一個參數時,若是這個值是非數字。會被當作數組的第一個參數,生成一個長度爲1的數組。若是是數字,就會建立一個這個數字長度的空數組。編碼
但其實上面的建立方法不經常使用。咱們更習慣這麼寫code
var arr = []; var arr = [0,1,2,3]
基礎方法對象
arr.length //數組的長度 arr[1] //數組下標是1的值。數組的下標從0開始計數 arr.push(值) //往數組添加元素
var arr = ["element1","element2","element3","element4"]; //下面全部案列都是用的這個數組 //獲取指定元素的下標 var index = arr. indexOf(」element2「); // 1
參數 | 描述 |
---|---|
index | 必需。整數。添加/刪除項目的位置,使用負數可從數組結尾處規定位置。 |
number | 必需。要刪除的項目數量。若是設置爲 0,則不會刪除項目。 |
item1, ..., itemX | 可選。向數組添加的新項目。 |
來看實際例子排序
//刪除 let getReturn = arr.splice(1,1); console.log(getReturn); // ["element2"] console.log(arr); //["element1",","element3","element4"] //添加 let getReturn = arr.splice(arr.length,0,"element5","element6"); console.log(getReturn); //[] console.log(arr); //["element1","element2","element3","element4","element5","element6"]
let getReturn = arr.pop(); console.log(getReturn); //element4 console.log(arr); //["element1","element2","element3"]
參數 | 描述 |
---|---|
start | 必需。整數。添加/刪除項目的位置,使用負數可從數組結尾處規定位置。 |
end | 必需。要刪除的項目數量。若是設置爲 0,則不會刪除項目。 |
注意:請注意,該方法並不會修改數組,而是返回一個子數組。若是想刪除數組中的一段元素,應該使用方法 Array.splice()。ip
let getReturn = arr.slice(1,3); console.log(getReturn); //["element2", "element3"] console.log(arr); //["element1", "element2", "element3", "element4"]
另外,slice()方法也能夠實現深拷貝哦。element
let copyArr = arr.slice(); //不傳值 copyArr[0] = 'newElement'; console.log(arr); //["element1", "element2", "element3", "element4"] console.log(copyArr); //["newElement", "element2", "element3", "element4"]
separator:可選。指定要使用的分隔符。若是省略該參數,則使用逗號做爲分隔符。字符串
let getReturn = arr.join(); console.log(getReturn); //element1,element2,element3,element4 console.log(arr); //["element1", "element2", "element3", "element4"]
arrayX:必需。該參數能夠是具體的值,也能夠是數組對象。能夠是任意多個。get
//傳數組 let getReturn = arr.concat(['element5',"element6"],["element7"]); console.log(getReturn); //["element1", "element2", "element3", "element4", "element5", "element6", "element7"] console.log(arr); // ["element1", "element2", "element3", "element4"] //傳元素 let getReturn = arr.concat('element5',"element6"); console.log(getReturn); //["element1", "element2", "element3", "element4", "element5", "element6"] console.log(arr); //["element1", "element2", "element3", "element4"]
sortby:可選。規定排序順序。必須是函數。
返回值:對數組的引用。請注意,數組在原數組上進行排序,不生成新數組。
比較規則:是按照字符編碼進行排序,因此可能只有排出來的不是你想要的結果,得傳參數解決
let newArr = [3,5,2,4,1]; let getReturn = newArr.sort(); console.log(getReturn); //[1, 2, 3, 4, 5] console.log(newArr); //[1, 2, 3, 4, 5]
再看一個不如咱們所願的例子
let newArr = [1000,88,93,6,34]; let getReturn = newArr.sort(); console.log(getReturn); //[1000, 34, 6, 88, 93] console.log(newArr); // [1000, 34, 6, 88, 93] //要實現大小排序,咱們須要傳參數解決 function sortNumber(a,b){ //定義函數 return a - b } let getReturn = newArr.sort(sortNumber); console.log(getReturn); //[6, 34, 88, 93, 1000] console.log(newArr); //[6, 34, 88, 93, 1000]
若是數組是空的,那麼 shift() 方法將不進行任何操做,返回 undefined 值。
let getReturn = arr.shift(); console.log(getReturn); //element1 console.log(arr); //["element2","element3","element4"]
arr.unshift(newelement1,newelement2,....,newelementX)
let getReturn = arr.unshift("element-1","element0"); console.log(getReturn); //6 console.log(arr); //["element-1","element0","element1","element2","element3","element4"]
arr.unshift(newelement1,newelement2,....,newelementX)
let getReturn = arr.toString(); console.log(getReturn,typeof getReturn); //element1,element2,element3,element4 string console.log(arr,typeof arr); //["element1", "element2", "element3", "element4"] "object"
注:用於字符串操做時,JavaScript 會調用這一方法將數組自動轉換成字符串。例如:
let string = arr+"123"; console.log(string); //element1,element2,element3,element4123
該方法會改變原來的數組,而不會建立新的數組。
let getReturn = arr.reverse(); console.log(getReturn); //["element4", "element3", "element2", "element1"] console.log(arr); //["element4", "element3", "element2", "element1"]
此外,還有valueOf(),toLocaleString(),toSource()方法。可是歷來沒用過,也沒想到什麼使用場景,就不單獨講了。