js:Array物件常用方法介紹
阿新 • • 發佈:2018-11-10
前言
在js中,陣列作為一個特殊的物件。是我們常用的資料格式。今天就來梳理一下常用的陣列方法.
1.基礎
幾種基礎的就簡單介紹一下:
建立陣列
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的陣列。如果是數字,就會建立一個這個數字長度的空陣列。
但其實上面的建立方法不常用。我們更習慣這麼寫
var arr = [];
var arr = [0,1,2,3]
基礎方法
arr.length //陣列的長度
arr[1] //陣列下標是1的值。陣列的下標從0開始計數
arr.push(值) //往陣列新增元素
2.其它方法
var arr = ["element1","element2","element3","element4"]; //下面所有案列都是用的這個陣列
//獲取指定元素的下標
var index = arr. indexOf(”element2“); // 1
(1)splice(index,number,item1,.....,itemX)從陣列中新增/刪除元素,然後返回被刪除的元素。
引數 | 描述 |
---|---|
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"]
(2)pop()方法,刪除陣列最後一位,返回被刪除的元素。
let getReturn = arr.pop();
console.log(getReturn); //element4
console.log(arr); //["element1","element2","element3"]
(3)slice(start,end) 從已有的陣列中返回選定的元素。
引數 | 描述 |
---|---|
start | 必需。整數。新增/刪除專案的位置,使用負數可從陣列結尾處規定位置。 |
end | 必需。要刪除的專案數量。如果設定為 0,則不會刪除專案。 |
注意:請注意,該方法並不會修改陣列,而是返回一個子陣列。如果想刪除陣列中的一段元素,應該使用方法 Array.splice()。
let getReturn = arr.slice(1,3);
console.log(getReturn); //["element2", "element3"]
console.log(arr); //["element1", "element2", "element3", "element4"]
(4)join(separator)把陣列中的所有元素放入一個字串。
separator:可選。指定要使用的分隔符。如果省略該引數,則使用逗號作為分隔符。
let getReturn = arr.join();
console.log(getReturn); //element1,element2,element3,element4
console.log(arr); //["element1", "element2", "element3", "element4"]
(5)concat(array1,array2,......,arrayX) 方法用於連線兩個或多個數組。
arrayX:必需。該引數可以是具體的值,也可以是陣列物件。可以是任意多個。
//傳陣列
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"]
(6)sort(sortby) 方法用於對陣列的元素進行排序。
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();
console.log(getReturn); //[6, 34, 88, 93, 1000]
console.log(newArr); //[6, 34, 88, 93, 1000]
(7)shift() 方法用於把陣列的第一個元素從其中刪除,並返回第一個元素的值。
如果陣列是空的,那麼 shift() 方法將不進行任何操作,返回 undefined 值。
let getReturn = arr.shift();
console.log(getReturn); //element1
console.log(arr); //["element2","element3","element4"]
(8)unshift() 方法可向陣列的開頭新增一個或更多元素,並返回新的長度。
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"]
(9)toString() 方法可把陣列轉換為字串,並返回結果。
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
(10)reverse() 方法用於顛倒陣列中元素的順序。
該方法會改變原來的陣列,而不會建立新的陣列。
let getReturn = arr.reverse();
console.log(getReturn); //["element4", "element3", "element2", "element1"]
console.log(arr); //["element4", "element3", "element2", "element1"]
3.還有
此外,還有valueOf(),toLocaleString(),toSource()方法。但是從來沒用過,也沒想到什麼使用場景,就不單獨講了。