1. 程式人生 > >js:Array物件常用方法介紹

js:Array物件常用方法介紹

前言

在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()方法。但是從來沒用過,也沒想到什麼使用場景,就不單獨講了。

原文地址:https://segmentfault.com/a/1190000016948796