Предположим, что мы имеем эту сетку со значениями, которые могут быть 0 или 1:Clojure список понимание и уникальные значения для реагента
(def grid [[1 0 1]
[1 0 0]
[1 0 1]])
Теперь я хочу, чтобы преобразовать grid
в HTML икота как формат, используя список понимание:
(defn cell-component [is-it-1 key]
^{:key key} [:td (if (= is-it-1 1) {:class "is-it-1"})])
(defn grid-html []
([:table
[:tbody
(for [row grid]
^{:key row} [:tr
(for [cell row]
(cell-component cell how-i-can-generate-a-index?))])]]))
таблица генерируется правильно, но у меня нет каких-либо идеи, как сделать unique index
для моего td
. что должно быть how-i-can-generate-a-index?
?
В качестве побочного примечания: круглые круглые скобки вокруг '[: table ...]' в 'grid-html' являются избыточными (и код не будет работать с ними, поскольку они переходят на вызов функции - пока вы просто нужно вернуть компонент: '(defn grid-html [] [: table [: tbody ...]])) –
Просто используйте' map-indexed' вместо for. – ClojureMostly