Array(陣列)10個常用方法
1、push 在陣列末尾新增一個或多個元素,並返回陣列的長度, 可以新增任意型別的值作為陣列的一個元素。
語法:arr.push(newelement1,newelement2,....,newelementX)
示例程式碼:
var arr = [1,2];
arr.push(6); // arr:[1,2,6];返回值為3
arr.push('aa'); // arr:[1,2,6,"aa"];返回值為4
arr.push(undefined); // arr: [1,2,6,"aa",undefined];返回值為5
arr.push({a: "A", b: "B"}); // [1,2,6,"aa",undefined,{a: "A", b: "B"}];返回值為6
2、unshift 在最前面新增一個或多個元素,並返回陣列的長度,可以新增任意型別的值作為陣列的一個元素。
語法:arr.unshift(newelement1,newelement2,....,newelementX)
示例程式碼:
var arr = [1,2];
arr.unshift(9); // arr:[9, 1, 2];返回值為3
arr.unshift('aa') // arr:['aa',9, 1, 2];返回值為4
3、pop 刪除最後一個元素,並返回刪除元素的值;如果陣列為空則返回undefine。該方法會改變原始陣列
語法:arr.pop()
示例程式碼1:
var arr = [1,2,3,"aa",5];
arr.pop(); // arr: [1, 2, 3, "aa"];返回值為5
arr.pop(); // arr: [1, 2, 3];返回值為"aa"
示例程式碼2:
var arr = [];
arr.pop(); // 返回值為undefine
4、shift 刪除陣列第一個元素,並返回被刪除的元素;如果陣列為空則返回undefine。該方法會改變原始陣列
語法:arr.shift()
示例程式碼1:
var arr = [1,"aa",3,4,5];
arr.shift(); // arr: ["aa", 3, 4,5];返回值為1
arr.shift(); // arr: [3, 4, 5];返回值為"aa"
示例程式碼2:
var arr = [];
arr.shift(); // 返回值為undefine
5、slice擷取陣列,得到擷取的陣列;不改變原始陣列,得到新的陣列.與String的substring()方法類似。
語法:slice(start,end)
ps:
1.start從0開始
2.包含start位置元素,不包含end位置元素
3.end可以省略,省略表示擷取從start位置到陣列結束
示例程式碼:
var arr = [1,2,3,4,5];
var a1 = arr.slice(1); // a1: [2,3,4,5] ;arr不會被改變
var a2 = arr.slice(1,3); // a2: [2,3] ;arr不會被改變
var a3 = arr.slice(3,4); // a3: [4] ;arr不會被改變
6、splice剪接陣列,向/從陣列中新增/刪除專案,然後返回被刪除的專案,該方法會改變原始陣列,索引從0開始
語法:splice(index,howmany,item1,.....,itemX)
ps:
1.index => 必需。整數,規定新增/刪除專案的位置,使用負數可從陣列結尾處規定位置。
2.howmany => 可省略。要刪除的專案數量。如果設定為 0,則不會刪除專案,如果省略,則會刪除index位置及其後面的所有元素。
3.item1, ..., itemX => 可選。向陣列新增的新專案。
4.splice() 方法可刪除從 index 處開始的零個或多個元素,並且用引數列表中宣告的一個或多個值來替換那些被刪除的元素。
如果從陣列中刪除了元素,則返回的是含有被刪除的元素的陣列。
示例程式碼:
var arr = [1,2,3,4,5]; //以下注釋結果分別對陣列arr進行操作
arr.splice(1); // arr:[1]; 返回值為陣列[2,3,4,5]
arr.splice(1, 2); // arr:[1, 4, 5]; 返回值為陣列[2,3]
arr.splice(1, 0, 'A'); // arr:[1, "A",2,3, 4, 5]; 未刪除元素,返回值為空陣列[]
arr.splice(1, 2, 'A', 'B'); // arr:[1, "A", "B", 4, 5]; 返回值為陣列:[2,3]
7、concat 合併兩個或多個數組,得到新陣列,原始陣列不改變,如果要進行concat()操作的引數是陣列,那麼新增的是陣列中的元素,而不是陣列。
語法:arr.concat(arr1,arr2,......,arrN)
示例程式碼:
var arr1 = [1,2];
var arr2 = [3,4,5];
var arr3 = [6,7];
var arr = arr1.concat(arr2,arr3); // arr:[1,2,3,4,5,6,7]
var arr4 = arr1.concat(3,4); // arr:[1,2,3,4]
8、indexOf 陣列元素索引,並返回元素索引,不存在返回-1,索引從0開始
語法:arr.indexOf(searchvalue,fromindex)
ps:
1.searchvalue => 必需。規定需檢索的字串值。
2.fromindex => 可選。元素開始檢索的位置。如省略,則從陣列的首個元素開始
3.indexOf()方法對大小寫敏感!
示例程式碼:
var arr = ['a','b','c','d','e'];
arr.indexOf('a'); //返回值為0
arr.indexOf('f'); //返回值為-1
arr.indexOf('e',2); //返回值為4
9、join 陣列轉字串,與toString()方法類似
語法:arr.join(separator)
ps:
1.separator => 可選。指定要使用的分隔符。如果省略該引數,則使用逗號作為分隔符。
2.返回一個字串。
3.該字串是通過把陣列arr中的每個元素轉換為字串,然後把這些字串連線起來,在兩個元素之間插入 separator 字串而生成的。
示例程式碼:
var a, b, c;
a = [0, 1, 2, 3, 4];
b = a.join("-"); // 0-1-2-3-4
c = a.toString(); // 0,1,2,3,4
10、reverse 顛倒陣列中元素的順序,該方法會改變原來的陣列,而不會建立新的陣列。
語法:arr.reverse()
示例程式碼:
var a = [1,2,3,4,5];
a.reverse(); //a:[5, 4, 3, 2, 1] 返回值為陣列[5, 4, 3, 2, 1]