4

次のように、Reagent でベクトルを反復処理すると、次のようになります。

(for [item ["rattata" "pidgey" "spearow"]]
  [:li item])])

次のように、特定のアイテムのインデックスを取得したいと思います。

  [:li item index]

ベクトルを反復処理する別の方法も私を満足させるので、一般的な clojure 'for' について尋ねているわけではありません。

4

3 に答える 3

7

これは Reagent に固有のものではなく、実際には一般的な Clojure の質問ですが、これを行う方法がいくつかあります。

次のようなものを使用して、現在のコードと同様にアプローチできます

(def items ["rattata" "pidgey" "spearow"])
(for [index (range (count items))]
  [:li (get items index) index])

マップインデックスを使用することもできます

(doall (map-indexed (fn [index item] [:li index item]) items))

この場合の doall は Reagent 用です。友人は Reagent に干渉する可能map性のある遅延リストを返します (忘れると、コンソールに警告が出力されます)。

于 2016-08-08T13:21:19.563 に答える