2016-04-12 3 views
16

で反復インデックスにアクセスすることができます。通常は私はindexは必要ありませんが、時には便利です。は、どのように私はlodashと</p> <pre><code>_.map(items, (item, index) => {}); </code></pre> <p>のようなものを書くのに使用Ramda.map

私は今、RAMDAに移行しています:

R.map((item, index) => {}, items); 

indexundefinedです。確かに、変数indexを上限スコープに作成し、毎回mapボディで増分することができますが、Ramdaが意味するFPの観点からはちょっと間違っています。それでは、反復インデックスを取得するための方法はありますか?

+1

、このような質問のお手伝いをすることができますドキュメントであり「も参照してください」され – iofjuupasli

答えて

24

チェックアウトaddIndex:現在のインデックス、および全体のリスト:

は2つの、そのコールバック関数に新しいパラメータを追加することによって、既存のものから新しいリスト反復機能を作成します。

これは、例えば、Ramdaの単純なマップ関数を、Array.prototype.mapにもっと似ているものに変えます。これは、反復コールバック関数が最初のパラメータであり、リストが最後のパラメータである関数に対してのみ機能することに注意してください。 (listパラメータを使用しない場合は、この後者は重要ではないかもしれません。)ドキュメントから

例:

var mapIndexed = R.addIndex(R.map); 
mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']); 
//=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r'] 
関連する問題

 関連する問題