目錄
構造
var arr = new Array() // 作爲對象創建,直接創建
var arr = Array() // 作爲方法執行,可以省略new
var arr = new Array // 作爲對象創建,省略括號
var arr = new Array() // 長度0, 無內容
var arr = new Array(3) // 初始容量爲3的數組
var arr = new Array('a', 'b', 'c') //['a', 'b', 'c'], 直接按照元素構造
var arr = new Array('string', false, 3) // 類型不要求單一
字面
var arr = [] //空參
var arr = [3, 4, 5] //沒有長度聲明,內部都是元素
檢查類型
var arr = []
typeof arr //輸出:object
//類型沒有array,顯示的是object, 不能通過類型判斷是否是數組。
var arr = []
arr instanceof Array // 輸出:true
var arr = []
Array.isArray(arr) // 輸出:true
轉換
object:
//keys:屬性名稱列表
//values:屬性數值列表
var obj = {a:1,b:2,c:3}
var arr = Object.keys(obj) // [ 'a', 'b', 'c' ]
arr.length // 3
var values = Object.values(obj) // [ 1, 2, 3 ]
for(var i=0; i<arr.length; i++)
{
console.log(arr[i]); // a b c
}
for(var i=0; i<arr.length; i++)
{
console.log(values[i]); //1 2 3
}
String:
//split:分割字符串爲數組,支持單字符和字符串。
var s = 'string';
var arr = s.split(''); // [ 's', 't', 'r', 'i', 'n', 'g' ]
toString:
var arr = 'array'.split(''); // [ 'a', 'r', 'r', 'a', 'y' ]
arr.toString(); // 'a,r,r,a,y'
arr.join(); // 'a,r,r,a,y'
arr.join('-'); // 'a-r-r-a-y'
arr.join(''); // 'array'
排序
var arr = [11,2,333,44,5]; // [ 11, 2, 333, 44, 5 ]
//傳入匿名函數可以指定排序規則
arr.sort(function(a,b){
return a - b;
}); // [ 2, 5, 11, 44, 333 ]
arr.sort(function(a,b){
return b - a;
}); // [ 333, 44, 11, 5, 2 ]
//反轉
arr.reverse(); // [ 5, 44, 333, 2, 11 ]
拷貝
簡單引用,淺拷貝
var arr = [11,2,333,44,5];
var arr2 = arr;
arr.reverse(); // [ 5, 44, 333, 2, 11 ]
arr2 // [ 5, 44, 333, 2, 11 ]
複製,深拷貝
var arr = [11,2,333,44,5];
var arr2 = [...arr]
arr.reverse(); // [ 5, 44, 333, 2, 11 ]
arr2 // [ 11, 2, 333, 44, 5 ]
棧和隊列
stack:
var arr = [];
arr.push(3); // 1
arr.push(4); // 2
arr // [3, 4]
var arr = [7,8,9];
arr.pop() // 9
arr.pop() // 8
arr.pop() // 7
queue:
var arr = [7,8,9];
arr.shift() // 7
arr.shift() // 8
arr.shift() // 9
var arr = [];
arr.unshift(7); // 1
arr.unshift(8); // 2
arr.unshift(9); // 3
arr // [ 9, 8, 7 ]
插入:
/*
Array不要求類型統一,因此直接插入[]時當做對象進行插入。
如果想要插入數組內部數據時,需要...[]進行數據的遍歷枚舉。
同時,push()中可以傳入多個需要插入的元素,可以一次性進行多個元素的插入。
*/
var arr = [];
arr.push([9, 99])
arr.push(...[8, 88])
arr.push(7, 77)
arr // [ [ 9, 99 ], 8, 88, 7, 77 ]
拼接:
var a = [1];
var b = [2];
var c = a.concat(b); // [ 1, 2 ]
var d = b.concat(a); // [ 2, 1 ]
a // [1]
b // [2]
var e = a.concat(9, 5);
e // [ 1, 9, 5 ]
檢索:
var arr = [1,1,1]
arr.indexOf(1) // 0
var arr = [1,1,1]
arr.lastIndexOf(1) // 2
遍歷:
var arr = [7,8,9]
var result = arr.map(function(a){
return a - 2; // 每個人扣兩塊錢班費
}) //[5, 6, 7]