Nodejs數組篇

目錄

構造

字面

檢查類型

轉換

排序

拷貝

棧和隊列


構造

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] 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章