既出ネタだとは思うけれど、for ループ書くのが面倒なので、
ECMA 1.6 → 1.8 アタリでサポートしてくれたら嬉しんだけどな。
js で 100.times{| i | p i }
Rubyの1000.timesって、あまり使わないんだけど、無いと困る大事なメソッド。
同じ事をJavaScriptでもやりたいなと。
Number.prototype.times = function(callback){ n = this.valueOf(); if( !( n >= 0 && Math.floor(n) === +n ) ) { throw n + " is not a natural number"; } for(var i=0; i<n; i++){ callback(i); } }
200..times( function( i ){ console.log( i )} )
これで、for ループを書かなくてすみそうで助かる。
prototype汚染は。。。ごめん。
range っぽいもの、指定個数の配列を作る
指定個数の配列を作るなら、Arrayの引数でイイんだろうけど。
/// [1,2,3,4,5]が欲しいけど・・・ > Array(5) [undefined × 5] //これじゃない
なので、ruby っぽく書いて解決させておく。
Number.prototype.to = function(max){ min = this.valueOf(); list = []; for(i=min;i<=max;i++){ list.push(i); } return list }
> 1..to(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] > 0..to(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
prototype 汚染は。。。すいません。