3

オブジェクトと配列を操作するための優れたユーティリティ ライブラリはありますか。

たとえば、extend、forEach、オブジェクト/配列のコピーなどの関数、

node.js 環境で一般的なことは何ですか? underscore.js に代わる適切な方法があるのだろうか?

4

4 に答える 4

6

underscore.jsは、この種のもののかなり良いデフォルトです。便利な互換性の問題に関するスレッドを次に示します。

編集、アンダースコア以外の何かをリクエストした場合:

私の知る限り、追加の配列操作 (DOM 操作のための jQuery のようなもの) を探しているときは、アンダースコアがデファクト スタンダードになっています。Joyent は node.js 互換モジュールのかなり完全なマニフェストを維持しており、一見同等のユーティリティは、カリー化に重点を置いたfjsと呼ばれる実験的なライブラリのようです (ソースから判断すると、ほとんどの機能はとにかくアンダースコア関数を拡張することから来ています) )。他にも何かあるかもしれませんが、私の知る限り、アンダースコアの浸透と成熟度については何も知りません。

さらに別の編集-興味がある場合は、ここにいくつかの古いライブラリがありますが、それらのメンテナンスは少し落ちています- valentinewu.jsFunctional、およびSugar。機能的でバレンタインは少し薄いかもしれません。wu.js はほぼ同じように見え、砂糖はさらに太っています。

于 2012-09-13T19:33:58.663 に答える
5

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

于 2012-09-13T20:22:18.033 に答える
3

具体的には、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

于 2013-02-23T12:44:14.230 に答える
1

Ramdajs をご覧ください: http://ramdajs.com/0.22.1/index.html

Ramda の主な特徴は次のとおりです。

  • Ramda は、より純粋で機能的なスタイルを強調しています。不変性と副作用のない関数は、その設計哲学の中心にあります。これにより、シンプルで洗練されたコードで作業を完了することができます。

  • Ramda 関数は自動的にカリー化されます。これにより、最終的なパラメーターを指定しないだけで、古い関数から新しい関数を簡単に構築できます。

  • Ramda 関数へのパラメータは、カリー化に便利なように配置されています。操作対象のデータは通常、最後に提供されます。

最後の 2 つのポイントを組み合わせることで、関数をより単純な関数のシーケンスとして作成することが非常に簡単になり、それぞれがデータを変換して次の関数に渡します。Ramda は、このスタイルのコーディングをサポートするように設計されています。

于 2016-09-02T18:12:44.383 に答える