JavaScript おれおれ Advent Calendar 2011 – 10日目

配列はプロパティ .lengthを持っていますが、実はこれ、現在の配列項目数を取得するだけじゃなくて、設定する事もできたりします。

var arr = [];
console.log(arr.length);  // => 0

arr.length = 5;
console.log(arr.length);  // => 5
console.log(arr.join(','));  // => ",,,,"
console.log(arr[0]);  // => undefined

増えた分はundefinedが入ります。

減った分は、消滅します。

var arr = [10,11,12,13,14];
console.log(arr.length);  // => 5
console.log(arr.join(','));  // => "10,11,12,13,14"

arr.length = 3;
console.log(arr.length);  // => 3
console.log(arr.join(','));  // => "10,11,12"

ちなみに、これを応用して任意の文字数の文字列を簡単に作成する事もできます。

var l = 8;
var a = [];
a.length = l;
var s = a.join('.');
console.log(s);  // => "......."

まあ普通に繰り返し文を使った方が良さそうですけど。

var l = 8;
var s = "";
while (s.length < l) {
  s += "."
}
console.log(s);  // => "......."

追記(2011/12/11) 簡単に文字列作るの教えてもらいました!↓