覚えなければならないJavascript知識:巧用配列のlength属性


配列のlength属性
配列のlength属性が特徴的です.読み取り専用だけではありません.
したがって、この属性を設定することにより、配列の最後から項目を削除したり、配列に新しい項目を追加することができます.
まず列を見てください.
var colors = ['red','blue','green'];
colors.length = 2;
alert(colors[2]); //undefined
このように、length属性を配列の項数の値に設定すると、最後の項目が削除されます.またこの項目にアクセスするとundefinedが表示されます.
また、そのlength属性を配列の数より大きい値に設定すると、新たに追加された各項目はundefined値を取得し、以下のようになる.
var colors = ['red','blue','green'];
colors.length = 4;
alert(colors[3]) //    ,      undefined, length  4,
したがって、length属性を利用して、配列の終わりに新しいエントリを追加するのにも便利である.
var colors = ['red','blue','green'];
colors[colors.length] = 'black'; //    3       
colors[colors.length] = 'pink';  //    4       
配列の最後の項目の索引は常にlength-1であるため、次の項目の位置はlengthである.配列の最後にアイテムを追加するたびに、そのlength属性は自動的に更新され、この変化に反応します.
一方、現在の配列サイズを超えた位置に値を置くと、行列は長さ値をカウントし直します.つまり、長さ値は最後の項目のインデックスに1を加算します.
var colors = ['red','blue','green'];
colors[99] = 'black'; 
alert(colors.length);  // 100
以上のように、colors配列の位置99に値を挿入した結果、配列の新しい長さは100であり(99+1)、位置3〜位置98は実際には存在しないので、それらにアクセスするとundefinedに戻ります.
                              ————以上の知識点は「JavaScript高級プログラム設計(第三版)」から来ています.