javascript Array學習

首先感謝Dash 我不再用處處亂找文檔了javascript

再次感謝日食記 讓個人看到了世界的美好java

好的 咱們進入正題chrome

註解 我全部的學習心得都創建在ECMAscript5以後數組

IE9以前的瀏覽器概不負責瀏覽器

javascript Array是一個好玩的對象app

如何檢測她呢 首先instanceof是個不錯的方法函數

if (value instanceof Array) {
}

不過根據javascript高級程序設計說 這樣作 若是一我的從新構造了Array函數 你完了學習

so 這樣ui

if(Arrays.isArray(value)) {
}


如今咱們要構造了
this

不過搞那些有啥意思呢 

其實我關心這些構造方式時候產生的類型是否同樣

var arr1 = [];
var arr2 = new Array();
var arr3 = Array();

alert(typeof arr1);
alert(typeof arr2);
alert(typeof arr3);

好吧 都是object類型 

你們都知道數組裏有個length屬性 那麼她靠譜嗎

var fruits = [];
fruits.push('banana', 'apple', 'peach');

console.log(fruits.length); // 3

fruits[5] = 'mango';
console.log(fruits[5]); // 'mango'
console.log(Object.keys(fruits));  // ['0', '1', '2', '5']
console.log(fruits.length); // 6

臥槽 明明只有4個元素 返回的是6

不過通過個人實驗 在現代瀏覽器(ie9之後版本 chrome firefox safair)上

for (var i = 0; i < fruits.length; i++) {
	console.log(fruits[i]);
};

是會填充undefined的

如今我嘗試着修改length屬性

fruits.length = 2;
console.log(Object.keys(fruits)); // ['0', '1']
console.log(fruits.length); // 2

臥槽 我以前的數據呢

查看一下Array.length 竟然是可寫的

兩個做用

  1. 循環數組 相似於foreach

  2. 消除不須要的數組 。。。

Array 實現棧 隊列

棧 只有一個出入口 先進後出

so 咱們假設如今有一個空數組

var stack = [];

我想要放入 一些元素

var totalnum = stack.push('angel', 'clown', 'mandarin', 'sturgeon');
console.log(stack); // ['angel', 'clown', 'mandarin', 'sturgeon']
console.log(totalnum); // 4

拿出一個元素

var poped = stack.pop();
console.log(poped); // sturgeon

實現一個 隊列

隊列 先出先進 進出分開

後面進 前面出

var queue = ['angel'];

arr.push('clown', 'mandarin', 'surgeon'); // = 4
console.log('queue before: ' + queue);

var shifted = queue.shift();

console.log('queue after: ' + queue);
console.log('Removed this element: ' + shifted);

前面進 後面出

一樣 只是進使用 unshift   出使用pop

相關文章
相關標籤/搜索