Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在二维数组上循环并将数据提取到新数组_Javascript_Arrays_Loops_Multidimensional Array - Fatal编程技术网

Javascript 在二维数组上循环并将数据提取到新数组

Javascript 在二维数组上循环并将数据提取到新数组,javascript,arrays,loops,multidimensional-array,Javascript,Arrays,Loops,Multidimensional Array,我有一个二维数组,如下所示: 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?

我有一个二维数组,如下所示:

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?' },
]
我需要得到的结果是,只有一个数组应该是这样的:

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
,我假设外部数组中只有两个数组。您只需在第一个数组上循环,并从同一索引的其他数组中拾取文本,然后将它们合并到一个对象中

const bArray=
[['你好,世界',
“大家好”,
“你好吗?”
],
[{文本:“Hola Mundo”,
发件人:[],
原始:'},
{文本:'Hola todos',
发件人:[],
原始:'},
{文本:'Cómo estás?',
发件人:[],
原始:'},
]
];
让结果=bArray[0]。映射((项目,索引)=>{
返回{
恩:项目,,
es:bArray[1][index]。文本
};
});

控制台日志(结果)我假设外部数组中只有两个数组。您只需在第一个数组上循环,并从同一索引的其他数组中拾取文本,然后将它们合并到一个对象中

const bArray=
[['你好,世界',
“大家好”,
“你好吗?”
],
[{文本:“Hola Mundo”,
发件人:[],
原始:'},
{文本:'Hola todos',
发件人:[],
原始:'},
{文本:'Cómo estás?',
发件人:[],
原始:'},
]
];
让结果=bArray[0]。映射((项目,索引)=>{
返回{
恩:项目,,
es:bArray[1][index]。文本
};
});
控制台日志(结果)如果您只需执行以下操作:

bArray[0].reduce((arr, v, i) => arr.concat({"en" : v, "es" : bArray[1][i].text}), []);
你可以在一行中得到同样的东西

说明:

let val1 = bArray[0].map(tuple => tuple);
let val2 = bArray[1].map(tuple => tuple);
这只是获取数组中的元素。这与:

let val1 = bArray[0];
let val2 = bArray[1];
因此,我直接访问了原始行中的
bArray
索引。

如果您只需执行以下操作:

bArray[0].reduce((arr, v, i) => arr.concat({"en" : v, "es" : bArray[1][i].text}), []);
你可以在一行中得到同样的东西

说明:

let val1 = bArray[0].map(tuple => tuple);
let val2 = bArray[1].map(tuple => tuple);
这只是获取数组中的元素。这与:

let val1 = bArray[0];
let val2 = bArray[1];

所以我直接访问了原始行中的
bArray
索引。

使用
Array.prototype.forEach()方法的另一个变体

let result = [];
bArray[0].forEach((item, index) => {
   result.push({
     en: item,
       es: bArray[1][index].text
   });
});

console.log(result);

使用
Array.prototype.forEach()方法的另一个变体

let result = [];
bArray[0].forEach((item, index) => {
   result.push({
     en: item,
       es: bArray[1][index].text
   });
});

console.log(result);

有趣的答案!是的,外部阵列中只有两个阵列。有趣的答案!是的,外部阵列中只有两个阵列。这一个太棒了!这正是我想要的。Sim meu amigo,vocêestácerto:)真是太棒了!当然,
forEach
也可以;而不是
map
,您不能返回此处,因此需要推入一个数组。容易理解。谢谢你的回答。当然,
forEach
也可以;而不是
map
,您不能返回此处,因此需要推入一个数组。容易理解。谢谢你的回答。