それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

JavaScript で 100.times( alert ) するrangeっぽいものも

既出ネタだとは思うけれど、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 汚染は。。。すいません。