如何在JavaScript中使用reduce函数?我对使用它有点困惑

阿ja

我在使用reduce函数时有点困惑我有一个数组

let aa = [1,2,3,4,5,6]

我需要的输出是:

[{id:1,children:
   [{id:2,children:
        [{id:3,children:
          [{id:4,children:
            [{id:5,children:
              [{id:6,children:[{}]}]
            }]
          }]
        }]
   }]
}]

我写了一个函数

let aa = [1,2,3,4,5,6]
let cc = aa.reduce((acc, val) => {
  let obj = {
    id: val,
    children: []
  }
  acc.push(obj);
  console.log(acc[0].children)
  acc = acc[0].children
  return acc
}, [])
console.log(cc);

执行后,我得到的是空数组,但是在查看第7行控制台时,iam会得到一些类似的信息

在此处输入图片说明

请有人帮助我了解我犯了什么错误。

我们可以使用javascript中的Map()来制作这棵树吗

一定的表现

您需要在调用之前保存对初始外部数组的引用.reduce然后,在调用.reduce并传入初始值之后,它将构造递归结构,然后您可以返回初始值以返回整个结构:

const aa = [1, 2, 3, 4, 5, 6]
const result = [];
aa.reduce((acc, val) => {
  acc[0] = {
    id: val,
    children: [{}]
  };
  return acc[0].children;
}, result);

console.log(result);

不将结果保存到外部数组的另一种方法是使用reduceRight从内部构造它:

const aa = [1, 2, 3, 4, 5, 6]
const result = aa.reduceRight((children, val) => ([{
  id: val,
  children
}]), [{}]);
console.log(result);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

返回内部函数的真假,我有点困惑

来自分类Dev

使用 const 时出错,我对使用 const 有点困惑

来自分类Dev

我在这里有点困惑使用三元

来自分类Dev

Scala高阶函数有点困惑

来自分类Dev

我如何在jQuery中使用它

来自分类Dev

如何在JavaScript中使用它?

来自分类Dev

在我的主要CSS中使用我的自定义CSS有点麻烦了。(WordPress)

来自分类Dev

对我的 if 循环没有运行有点困惑?

来自分类Dev

如何在openmp中使用障碍,我感到困惑

来自分类Dev

我对如何在elisp中使用变量感到困惑

来自分类Dev

需要使用Python编程新手的帮助,我有点困惑,它更像是一个真正的困惑

来自分类Dev

对该函数背后的数学有点困惑

来自分类Dev

对 NSDecimalNumber 有点困惑?

来自分类Dev

我对Zend OPCache配置有点困惑

来自分类Dev

我有点困惑的按位运算

来自分类Dev

Ruby初学者,我有点困惑

来自分类Dev

我对 php 中的以下代码有点困惑

来自分类Dev

在对象定义中使用“()”与不使用它有什么区别?

来自分类Dev

如何在带有点的属性上使用Ember的吸气剂/设定剂?

来自分类Dev

如何在cpp中的线程中使用=运算符,它有什么好处?

来自分类Dev

使用 JavaScript 的 setTimeout 来(有点)模拟平滑滚动

来自分类Dev

我如何在函数中使用getStdGen

来自分类Dev

如何在JavaScript中使用reduce而不是for循环来构建Contains函数?

来自分类Dev

如何在javascript的reduce函数中使用属性值跳过重复的对象?

来自分类Dev

如何在R并行计算中使用Reduce()函数?

来自分类Dev

如何在R并行计算中使用Reduce()函数?

来自分类Dev

如何在C中使用函数读取数字并在main中使用它?

来自分类Dev

如何使用CImg调整屏幕中的所有点

来自分类Dev

如何在html中查找运算符值,将其设置为var并在javascript函数中使用它?

Related 相关文章

  1. 1

    返回内部函数的真假,我有点困惑

  2. 2

    使用 const 时出错,我对使用 const 有点困惑

  3. 3

    我在这里有点困惑使用三元

  4. 4

    Scala高阶函数有点困惑

  5. 5

    我如何在jQuery中使用它

  6. 6

    如何在JavaScript中使用它?

  7. 7

    在我的主要CSS中使用我的自定义CSS有点麻烦了。(WordPress)

  8. 8

    对我的 if 循环没有运行有点困惑?

  9. 9

    如何在openmp中使用障碍,我感到困惑

  10. 10

    我对如何在elisp中使用变量感到困惑

  11. 11

    需要使用Python编程新手的帮助,我有点困惑,它更像是一个真正的困惑

  12. 12

    对该函数背后的数学有点困惑

  13. 13

    对 NSDecimalNumber 有点困惑?

  14. 14

    我对Zend OPCache配置有点困惑

  15. 15

    我有点困惑的按位运算

  16. 16

    Ruby初学者,我有点困惑

  17. 17

    我对 php 中的以下代码有点困惑

  18. 18

    在对象定义中使用“()”与不使用它有什么区别?

  19. 19

    如何在带有点的属性上使用Ember的吸气剂/设定剂?

  20. 20

    如何在cpp中的线程中使用=运算符,它有什么好处?

  21. 21

    使用 JavaScript 的 setTimeout 来(有点)模拟平滑滚动

  22. 22

    我如何在函数中使用getStdGen

  23. 23

    如何在JavaScript中使用reduce而不是for循环来构建Contains函数?

  24. 24

    如何在javascript的reduce函数中使用属性值跳过重复的对象?

  25. 25

    如何在R并行计算中使用Reduce()函数?

  26. 26

    如何在R并行计算中使用Reduce()函数?

  27. 27

    如何在C中使用函数读取数字并在main中使用它?

  28. 28

    如何使用CImg调整屏幕中的所有点

  29. 29

    如何在html中查找运算符值,将其设置为var并在javascript函数中使用它?

热门标签

归档