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) 簡単に文字列作るの教えてもらいました!↓
ちなみに任意文字の文字列はこんな感じで作れたりします(new Array(10)).join(‘a’) // 配列の .lengthは代入できる(JavaScript おれおれ Advent is.gd/C3pFU4
— kyo ago (@kyo_ago) 12月 11, 2011
new Arrayの唯一といっていいまともな使い方じゃないかな
— kyo ago (@kyo_ago) 12月 11, 2011