javascript 數組方法

數據集合在編程中使用的很是普遍,好比C#中的Collection、List使咱們能夠存儲「一組」數據,並對這組數據進行遍歷、刪選、排序...等操做,C#中linq給我提供了各類便利的集合操做方法; 一樣 javascript數組對象從Array.prototype上繼承了不少實用方法;javascript

模擬二維數組實現九九乘法表java

var table = new Array(10);
for (var i = 0; i < table.length; i++) {
	table[i] = new Array(10);
}
for (var row = 0; row < table.length; row++) {
	for (var col = 0; col < table[row].length; col++) {
		table[row][col] = row * col;
	}
}
// 在控制檯查看table的行列關係
console.table(table);
// talbe的行列對應的值就是九九乘法表的值 
// 如 5*7 == table[5][7]
console.log(table[5][7]);

Array.join(<seperator>)用指定分隔符鏈接數組的各個元素,返回字符串###

經常使用於用數組收集數據後,生成一個逗號分隔的字符串這類操做;和字符串的split操做恰好相反編程

var arr = [1,2,3,4]
arr.join(' ');        //=> "1 2 3 4"
arr.join('|');        //=> "1|2|3|4"
console.log(arr);     //=> [1,2,3,4]   //無反作用

反作用 Array.reverse() 顛倒數組元素的順序, 並返回

var arr = [1,2,3];
var b = arr.reverse();
console.log(b);    //=> [3,2,1]
console.log(arr);  //=> [3,2,1]  //反作用

反作用 Array.sort([function]) 排序後返回,若是沒有傳入比較函數 則以字母表的順序排序(其餘類型會先轉成字符串), undefined會排到末尾;

//1. sort();
var a = ['banana','cherry',undefined,'apple']
var b = a.sort();
var s = a.join(', ') // s == "apple, banana, cherry, undefined"
var y = b.join(', ') // y == "apple, banana, cherry, undefined" 

//2. sort([funtion(a,b)]) 
// 假設第一個參數應該在第二個參數前面,則返回小於0的數,反之返回大於0的數
var a=[33, 4, 111, 222];
a.sort();  //!!! 按照字母表順序排列 [111, 222 ,33, 4]  
// 從小到大排列 
a.sort(function(a, b) {
	return a - b;
})

Array.conact(array1,array2,...) 鏈接多個數組元素,返回新數組;不會深層次鏈接

var a = [1,2]
var b = a.concat([3,[4,5]])
// b ==  [1, 2, 3, [4, 5]]
// a == [1,2] 無反作用

Array.slice([start],[end]) 返回數組的指定片斷

負數表示從最後一位開始數組

start: 開始截取的索引位置(包含);app

end: 結束位置(不包含),不指定表示截取從start到結尾全部元素函數

var a = [1,2,3,4,5];
var b = a.slice(0,3); // [1, 2, 3] 
b = a.slice(2,-1);    // [3, 4]
b = a.slice(2);       // [3, 4, 5]
b = a.slice(-3,-2);   // [3]
### b = a.slice(-3,-3);   // []

反作用 Array.splice([start],[count],[replacer]) 刪除和插入數組元素的通用方法,返回由被刪除元素組成的數組

var a = [1,2,3,4,5,6];
var b = a.splice(1,0,'a');   // 返回 []; a: [1,"a",2,3,4,5,6]
b = a.splice(1,1,['a','b']); // a:  [1,["a","b"],3,4,5,6] 
a.splice(2); // 返回[3,4,5,6]  a: [1,["a","b"]]

堆棧/隊列 操做

如下四個方法,兩兩組合能夠模擬堆棧的先進後出、隊列的先進先出效果
var a=[];
//1. Array.push([element],[element],...) 向數組末尾推入新元素
a.push(1); // a: [1]
a.push([2,3]); // a: [1,[2,3]]

//2. Array.shift() 返回數組第一位元素
var b = a.shift(); // b: 1 
b = a.shift();         // b: [2,3]

//3. Array.unshift([element],[element],...) 在數組開頭壓入新元素
a.unshift(4);
a.unshift([6,7]); // a: [4,[6,7]]

//4. Array.pop(); 彈出數組最後一個元素
var b = a.pop(); // b: [6,7]
相關文章
相關標籤/搜索