JSで同じ要素のみの配列を作る話
Q!!taの記事は時たま暇な時に読んでいる.
で,今日読んでいた記事がこれ.
ちょっと思うところがあるので書いておく.
一応「こっちのほうがよくない?」って提案です.
JavaScriptで同じ要素のみで構成される配列を作りたい.
上の記事では,
Array.apply(null, Array(10)).map(function(){ return 'AB' });
著者も「イマイチだなーとは思う。」と言っているが,自分も「これはないなー」と思う.
そのコメント欄も賑わっており,最後に書かれているコードは以下のもの.
Array(10).join(',').split(',').map(function(){ return 'AB'; });
なるほど,なるほど.「これはないなー」
これは,個人的な感性の問題かもしれないがnew Array()
使いますか?
自分の中では,JavaScriptでArray()
使って配列を作るのはナンセンス.[]
を使うべきだ.
いろいろ意見があるとは思うが,自分が今まで使った範囲で言えばArray()
を使わなければならない場面に遭遇していない.じゃあ短いほうがいいでしょ.
あと,本来目的である処理とはかけ離れたjoin
とsplit
がある.
これはちょっとわかりづらくなってしまうと思う.
でだ,課題の話.Array()を使わずに書いてみせましょう.
「こっちのほうがよくない?」って提案です.
Array()
使う方法も面白いです.普段使われないようなものを活用しているコード,大好きですよ.
var array = []; while(10 - array.push("AB"));
以上.どうだろうか.
join
やsplit
するよりかはわかりやすいと思うのだが.
ん?変数を勝手に作るなって?
作るってことは使うんだろ,じゃあ変数作ってもいいじゃないか.
それでも文句言うやつは,勝手に無名関数にでも囲んでおけ.
(function(s, l, a){while(l - a.push(s)); return a;})("AB", 10, []);
余計に訳がわからなくなったって?だったら上にコメントでも書いておけばいい.
私からは以上です.
追伸
コメント欄だと柔く書いてるのはなんでだって?
そりゃ,100Contributionとか500Contributionとか怖いじゃないですかぁ....