オブジェクトと配列を操作するための優れたユーティリティ ライブラリはありますか。
たとえば、extend、forEach、オブジェクト/配列のコピーなどの関数、
node.js 環境で一般的なことは何ですか? underscore.js に代わる適切な方法があるのだろうか?
オブジェクトと配列を操作するための優れたユーティリティ ライブラリはありますか。
たとえば、extend、forEach、オブジェクト/配列のコピーなどの関数、
node.js 環境で一般的なことは何ですか? underscore.js に代わる適切な方法があるのだろうか?
underscore.jsは、この種のもののかなり良いデフォルトです。便利な互換性の問題に関するスレッドを次に示します。
編集、アンダースコア以外の何かをリクエストした場合:
私の知る限り、追加の配列操作 (DOM 操作のための jQuery のようなもの) を探しているときは、アンダースコアがデファクト スタンダードになっています。Joyent は node.js 互換モジュールのかなり完全なマニフェストを維持しており、一見同等のユーティリティは、カリー化に重点を置いたfjsと呼ばれる実験的なライブラリのようです (ソースから判断すると、ほとんどの機能はとにかくアンダースコア関数を拡張することから来ています) )。他にも何かあるかもしれませんが、私の知る限り、アンダースコアの浸透と成熟度については何も知りません。
さらに別の編集-興味がある場合は、ここにいくつかの古いライブラリがありますが、それらのメンテナンスは少し落ちています- valentine、wu.js、Functional、およびSugar。機能的でバレンタインは少し薄いかもしれません。wu.js はほぼ同じように見え、砂糖はさらに太っています。
lodashは「underscore.js のドロップイン置換*」であり、検討することもできます。
Lo-Dash v0.7.0 は、少なくとも Chrome 5-21、Firefox 1-15、IE 6-9、Opera 9.25-12、Safari 3-6、Node.js 0.4.8-0.8.8、Narwhal 0.3 でテストされています。 .2、RingoJS 0.8、Rhino 1.7RC5
具体的には、Node の組み込みutil._extend()
関数を使用できます。
var
extend = require('util')._extend,
x = {a:1},
y = extend({}, x);
Nodeの_extend関数のソースコード: https://github.com/joyent/node/blob/master/lib/util.js#L563
Ramdajs をご覧ください: http://ramdajs.com/0.22.1/index.html
Ramda の主な特徴は次のとおりです。
Ramda は、より純粋で機能的なスタイルを強調しています。不変性と副作用のない関数は、その設計哲学の中心にあります。これにより、シンプルで洗練されたコードで作業を完了することができます。
Ramda 関数は自動的にカリー化されます。これにより、最終的なパラメーターを指定しないだけで、古い関数から新しい関数を簡単に構築できます。
Ramda 関数へのパラメータは、カリー化に便利なように配置されています。操作対象のデータは通常、最後に提供されます。
最後の 2 つのポイントを組み合わせることで、関数をより単純な関数のシーケンスとして作成することが非常に簡単になり、それぞれがデータを変換して次の関数に渡します。Ramda は、このスタイルのコーディングをサポートするように設計されています。