Как отслеживать индекс элементов двойного массива с помощью карты ramda? - PullRequest
0 голосов
/ 25 августа 2018

У меня есть этот массив: [[x,x,x,x][x,x,x,x][x,x,x,x][x,x,x,x]]

Я хочу зациклить и преобразовать эти элементы и вернуть новый массив. Поэтому мне нужно отслеживать как массив, так и индекс элемента массива:

const mapIndexed = R.addIndex(R.map)
const columns = mapIndexed((col, cidx) => // I need ridx here)
const nextGrid = mapIndexed((row, ridx) => columns, currentGrid)

это не работает.

1 Ответ

0 голосов
/ 29 августа 2018

Основано на предложении @ берги mapIndexed

const matrix = [
    ['a1', 'b1', 'c1', 'd1'],
    ['a2', 'b2', 'c2', 'd2'],
    ['a3', 'b3', 'c3', 'd3'],
    ['a4', 'b4', 'c4', 'd4'],
]

const mapIndexed = addIndex(map)

const map2d = (f, l) => 
  mapIndexed((row, x) =>
             mapIndexed((col, y) => f(col, x, y), row), l)

map2d((...x) => x, matrix)
// => [[["a1", 0, 0], ["b1", 0, 1], ["c1", 0, 2] etc...
...