Как я могу преобразовать 2d массив в массив объектов со всеми уникальными именами свойств? - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно взять 2d массив и сгенерировать массив объектов. Достаточно просто, но мне нужно также создать уникальный идентификатор для каждого объекта. Например,

INPUT:

[
   ['This is text 1', 'word 1', 'This is text 1'], 
   ['This is text 2', 'word 2', 'This is text 1']
]

OUTPUT:

[{
   1: 'This is text 1'.
   2: 'word 1',
   3: 'This is text 1'
},
{
   4: 'This is text 2'.
   5: 'word 2',
   6: 'This is text 2'
}]

Это для проекта React, и каждый исходный элемент массива представляет абзац, поэтому в моем примере у меня есть два абзацы. Я создаю компоненты из определенных слов в строке, поэтому его разделить. Для реакции требуются уникальные ключи.

У меня есть эта работа с вложенной картой и уменьшением решения:

let counter = 0;
arr.map(item =>
    item.reduce((acc, curr) => {
        const result = acc;
        result[counter] = curr;
        counter += 1;
        return result;
    }, {})
);

Я не большой поклонник этого решения из-за вложенной l oop. Я хочу уменьшить сложность этого, удалив вложенный l oop.

Какие у меня есть варианты?

...