【发布时间】:2018-11-03 00:36:36
【问题描述】:
我有一个像这样的二维数组:
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。
【问题讨论】:
标签: javascript arrays loops multidimensional-array