У меня есть двумерный массив примерно так:
const bArray =
[ [ 'Hello World',
'Hi everybody',
'How are you?'
],
[ { text: 'Hola Mundo',
from: [Object],
raw: '' },
{ text: 'Hola a todos',
from: [Object],
raw: '' },
{ text: 'Cómo estás?',
from: [Object],
raw: '' },
]
]
И мне нужно получить только один массив, который должен выглядеть так:
[
{ en: 'Hello World',
es: 'Hola Mundo' },
{ en: 'Hi everybody',
es: 'Hola a todos' },
{ en: 'How are you?',
es: 'Cómo estás?' },
]
Вот как я это делаю:
let val1 = bArray[0].map(tuple => tuple);
let val2 = bArray[1].map(tuple => tuple);
let result = val1.reduce((arr, v, i) => arr.concat({"en" : v, "es" : val2[i].text}), []);
А теперь в переменной result
у меня есть только один массив с показанным ранее результатом.
Мой вопрос?
Есть ли какой-нибудь улучшенный способ, которым я могу получить тот же результат, но с меньшим количеством строк кода?Я имею в виду что-то вроде комбинации map
с reduce
, filter
или concat
без создания двух отдельных массивов, таких как val1
и val2
.