私は、主にフィルタリング、並べ替え、グループ化/カウントのためにオブジェクトの配列を操作するJavaScriptライブラリを探しています。underscore.jsの代替手段
underscore.jsが請求書に適合しているようですが、私は他のオプションを調べることに興味があります。アンダースコアには60以上の機能がありますが、私は一握りしか必要ありません。
たとえば、私は、いくつかのデータ変換可能なライブラリにこのような機能を含めると期待していますが、どこを見るかはわかりません。
私は、主にフィルタリング、並べ替え、グループ化/カウントのためにオブジェクトの配列を操作するJavaScriptライブラリを探しています。underscore.jsの代替手段
underscore.jsが請求書に適合しているようですが、私は他のオプションを調べることに興味があります。アンダースコアには60以上の機能がありますが、私は一握りしか必要ありません。
たとえば、私は、いくつかのデータ変換可能なライブラリにこのような機能を含めると期待していますが、どこを見るかはわかりません。
それはJavaScript arr.filter
、arr.sort
、arr.length
と呼ばれています。
アレイ上に配列メソッドを適用できます。一般的な配列はfilter
,map
、reduce
です。それらを組み合わせて複雑な操作を作成できます。
あなたがオブジェクトを反復処理する場合は、ES3の世界に住んでいる場合
Object.keys(o).forEach(function (key) {
var val = o[key];
...
});
を使用アンダースコアは便利ですが、ES5はあなたが必要なすべてを持って、すべてが行う下線は、その上に肥大化を追加することです。
'arr.length'?私はあなたのプログラムの海賊の数を教えてくれませんか? ;) –
私はIE 8とIE 7でも人気がある世界に住んでいます... http://kangax.github.com/es5-compat-table/ – Christophe
@Christophe [ES5-shim](https:// github.com/kriskowal/es5-shim)問題が解決しました。 – Raynos
次の2つのライブラリに見てみたいことがあります。
ありがとうございます。どうやら、2番目のものは数値の配列にしか作用しませんが、私はオブジェクトの配列に対しては解決策が必要です。 – Christophe
私は、これは古いです知っていますが、lodashを見たのですか?サイトから:
Underscore.jsのドロップイン置換*。 [...]
カスタムビルドでは、必要なメソッドのみを含む軽量バージョンのLo-Dashを簡単に作成できます。そのためには、メソッドの依存関係やエイリアスマッピングをすべて処理します。
Lo-Dash over Underscoreの利点は何ですか?アンダースコアはすでに小さいです。 – blaster
@blaster:Lo-Dashはかなり最適化されています。ここでは、ビジュアル化されたベンチマーク結果を見ることができます:http://dtao.github.io/lazy.js/ –
による遅延評価にunderscore.jsに似ていますが、重要なのパフォーマンス改善と
このライブラリは、複数の操作を連鎖させたい場合にのみパフォーマンスを向上させます。単一の 'map()'や 'reduce()'を実行するとパフォーマンスが向上しません(特にロダッシュに比べて実際には遅くなる場合があります)。ただし、非常に大規模なデータセットで操作する場合、パフォーマンスの向上は**本当に**顕著です。 – idbehold
@idbehold:JavaScriptエンジンの動作が大きく異なるため、環境や配列のサイズによって異なります。たとえば、Chromeでは、小さな配列でも連鎖しない場合でも、Lazy.jsはLo-Dashより優れています。しかし、Firefoxでは、そのシナリオではLo-Dashが高速であることは間違いありません。 –
lowscoreを(http://dtao.github.io/lazy.js/)をlazy.jsを見てみましょうは非常に軽量アンダースコアであることを意図している:
require
必要な機能のみ
あなたはいつもあなたがレイノスに基づいて、[ソース](http://documentcloud.github.com/underscore/docs/underscore.html) – rlemon
を形成する必要がある*関数/メソッドの*の一握りを取り去るだけで試すことができます'答え、私は実際に私がES5シムから必要なものを取り除くべきだと思っています。 – Christophe