5

_.something(somevar, some_function_or_other_thing);「構文」はかなり醜いと思います。ルビーのようなイテレータや類似のものを使用するいくつかの良い代替手段は何ですか:

10..times(function(i) {
   console.log(i);
});

uppercasefoobar = ["foo", "bar"].each(function(i) {
    return i.toUpperCase();
});

また、node.js を使用しているので、DOM よりもコードに重点を置く必要があります。

4

3 に答える 3

5

誰もLo-Dashについて言及していないことに驚いた。Lo-Dash は Underscore のスーパーセットであり、多数のメソッドが追加されています。John-David Dalton (Lo-Dash の作成者) は、ここでSO の質問に答える際の 2 つのライブラリの主な違いについて説明しています。

編集:詳細なブログ投稿「Say hello to Lo-Dash」を見つけ、ライブラリの背景と他のいわゆる「js ユーティリティ ベルト」との比較を詳述しています。

于 2014-01-28T01:52:26.413 に答える
3

探しているようですArray.prototype.map

uppercasefoobar = ["foo", "bar"].map(function(i) {
    return i.toUpperCase();
});
// uppercasefoobar == ["FOO", "BAR"]

underscore.js を使用すると、次のようにも記述できます。

_.range(10).forEach(function(i) {
    console.log(i);
});

編集次のものも使用できます。

_(3).times(function(i) {
    console.log(i);
});

Ruby の構文ほどきれいではありませんが、仕事は完了します。

一般に、アンダースコアはほとんどの関数のオブジェクト指向バージョンを提供します。

_.something(variable, params);

に等しい

_(variable).something(params);
于 2013-11-06T04:04:48.357 に答える
2

自分で見つけた!http://sugarjs.com/

(そして、はい、ネイティブクラスを拡張すると本質的に言語が分岐することを認識しています...それが私の動機です...)

于 2013-11-23T05:27:36.813 に答える