将多个数组中的值存储到一个数组中(JavaScript/JS)

将多个数组中的值存储到一个数组中(JavaScript/JS),javascript,arrays,reactjs,loops,Javascript,Arrays,Reactjs,Loops,我有一个数组,它的值是数组。我需要的是一个具有所有数组值的输出 注意:输入数组及其元素(数组)不是固定长度的 输入: array = [ [a,b], [c,d,e], [f,g] ] 输出: [ { Header : a Children : [ { Header : c Children : [ Header : f ] }, ] }, { Header : a Children

我有一个数组,它的值是数组。我需要的是一个具有所有数组值的输出

注意:输入数组及其元素(数组)不是固定长度的

输入

array = 
[ 
  [a,b],
  [c,d,e],
  [f,g]
]
输出

[
 {
  Header : a
  Children : 
  [
   {
    Header : c
    Children : 
     [
      Header : f
     ]
   },
  ]
 },
 {
  Header : a
  Children : 
  [
   {
    Header : c
    Children : 
     [
      Header : g
     ]
   },
  ]
 },
 {
  Header : a
  Children : 
  [
   {
    Header : d
    Children : 
     [
      Header : f
     ]
   },
  ]
 },
.
.
.
{
  Header : a
  Children : 
  [
   {
    Header : e
    Children : 
     [
      Header : g
     ]
   },
  ]
 },
 {
  Header : b
  Children : 
  [
   {
    Header : c
    Children : 
     [
      Header : f
     ]
   },
  ]
 },
 .
 .
 .
 .
 .
 {
  Header : b
  Children : 
  [
   {
    Header : e
    Children : 
     [
      Header : g
     ]
   },
  ]
 },
]
基本上是这样,

[a,c,f],
[a,c,g],
[a,d,f],
[a,d,g],
[a,e,f],
[a,e,g],
[b,c,f],
[b,c,g],
[b,d,f],
[b,d,g],
[b,e,f],
[b,e,g]
我已尝试使用for循环,但无法获得所需的输出。 我们有什么方法可以达到这个结果吗?

您可以先创建一个二维阵列。然后,使用为笛卡尔乘积中的每个数组创建嵌套对象

const数据=[
[“a”、“b”],
[“c”、“d”、“e”],
[“f”,“g”]
]
常量笛卡尔=数据减少((acc,curr)=>
acc.flatMap(c=>curr.map(n=>[].concat(c,n)))
)
常量树=arr=>arr.reduceRight((acc,Header)=>
acc?({Header,Children:[acc]}):({Header})
,空)
常量输出=笛卡尔.map(树)
log(JSON.stringify(笛卡尔))

console.log(输出)
堆栈溢出不是代码写入服务。请提供您尝试过的内容和遇到的问题。@Emilebergron我明白您的意思,但我尝试过的循环的内容现在工作正常。您可以使用此项获得第二个输出。然后,您可以循环遍历输出数组,并使用递归为每个内部数组创建一个嵌套对象。因此,问题描述中的输入似乎与输出不匹配,或者背后的逻辑不清楚,这使得帮助变得非常困难。谢谢@mateusz。我尝试了上面解释的笛卡尔方法。它工作得很好。
function join(arrayOfArrays) {
    let current = [[]];
    for (let array of arrayOfArrays) {
        current = current.flatMap(c=>array.map(a=>[...c, a]));
    }
    return current;
}