javascript深刻學習筆記-[數組]

記筆記頗有必要——相信我,大多數人的記憶力是不可靠的。 javascript

——《與時間作朋友》李笑來java

數組

  • 值的有序集合數組

  • 弱類型prototype

    • 數組中的元素能夠是各類類型的code

      • null對象

      • undefinedip

      • ...原型

  • 空間有限it

    • 0~2^32-1( 42_9496_7295)console

建立

字面量

var arr = [['ff',{ee:'dd'}],[e,dd]]
var arr = [,,] //2 undefined

new Array()

new Array(100);//100undefined
new Array(1,2,'hi',{'touch':'me'})//[1,2,'hi',{touch:'me'}]

添改查刪

添加

  • .push(xx) //添加到後面

    • 返回添加後數組的數組長度

    • //等於 arr[arr.length] = xx

  • .unshift() //添加到前面

刪除+輸出

  • (單純刪除)

    • arr.length -= 1;//刪除最後一元素

  • .shift() //把第一個犧牲出去

  • .pop() //把最後一個犧牲出去

delete

  • delete arr[0] // 至關於 arr[0] = undefined

迭代

for(;;)

for(i in arr)

  • 做爲一個對象來遍歷這個數組時

    • 當Array原型上定義了一個屬性的時候,for i in arr一個數組的時候,將會把原型上的這個屬性也遍歷出來,無論這個數組是在這以前仍是以後生成的。

      var arr = [1,2,3]
      Array.prototype.x = 'inherited'
      for(i in arr){
          console.log(i + ' ' + arr[i]);
      }
      //1 1
      //2 2
      //3 3
      //x 'inherited'
      • 解決方式

        for(i in arr){ 
            if(arr.hasOwnProperty(i){
            //do somethings
            } 
        }
    • 遍歷的順序不肯定

      • 由於對象不是有序的。

數組的兩種特殊形式

二維數組

遍歷一個二位數組

經過嵌套的循環

var arr = [[0,1],[1,2],[2,3]]
for(var i =0;i<arr.length;i++){
    console.log('row ' + i)
    for(var j =0;j<arr[i].length;j++){
        console.log(arr[i][j]);
    }
}

應用

  • 二位平面定位

  • 三位空間點定位(使用三維數組

稀疏數組(不經常使用)

  • 內部的元素構不成一個連續序列

  • 通常length屬性值比實際元素個數大

什麼東西?

將數組比做一棟出租屋,裏面按照輸入的參數建了好幾個房間。

除了部分建造時就不打算用來出租的空房間以外

若是存在沒有人住的空房間

那麼這個出租屋就是「稀疏出租屋」。

//按照輸入的參數建了好幾個房間
var apartment = [1,undefined,,4,'watch']

// 建造時就不打算用來出租的空房間
apartment[1]
// undefined 
1 in apartment
// true

// 沒有人住的空房間
aprtment[2]
// undefined
2 in apartment
// false

// 稀疏出租屋
apartment;
// [1,undefined,,4,'watch']

怎麼產生的?

這個空房間的產生可能因爲:

  1. 建房子的時候輸入的參數沒有指明用途。var empty = [,,]

  2. 出租過程當中趕走了某些房客。delete arr[1]

具體來講就是說: 存在某個空間沒有元素的數組即是稀疏數組

怎麼處理?

  • in

    • {number} in {arr} 將會確認 arr[number] 這個位置有沒有元素存在。

  • arr[i] == undefined

    • 同檢查元素是否存在

相關文章
相關標籤/搜索