nodejs 用reduce遍历输出不了结果,求助。

发布于 2022-09-12 03:21:00 字数 1083 浏览 17 评论 0

原始数据如下:

[
   {
    name: '李小华',
    skill: '挖掘',
  },
  {
    name: '李小华',
    skill: '起重',
  },
  {
    name: '赵里斯',
    skill: '挖掘2',
  },
    {
    name: '赵里斯',
    skill: '挖掘3',
  },
  {
    name: '赵里斯',
    skill: '挖掘4',
  },

我用了reduce来遍历结果,希望结果是:

[{ 
    value: '李小华', 
    label: '李小华', 
    children: 
    [{ 
        value: '挖掘', 
        label: '挖掘', 
        },
        {
        value: '起重'
        label: '起重'
        }]
  },{
    value: '赵里斯', 
    label: '赵里斯', 
    children: 
    [{ 
        value: '挖掘2', 
        label: '挖掘2', 
        },
        {
        value: '挖掘3'
        label: '挖掘3'
        },
        value: '挖掘4'
        label: '挖掘4'
        }]
  },
  }
        

目前是这样写的,但是结果总是为空[],不知哪里写错了,请教大神解救。


const arr = skills.reduce((arr,k)=>{
            !arr.some((v)=>v.value == k.name&&v.children.push({value: k.skill,})&&arr.push({value: k.name,childred:[k.skill]}));
            return arr;
        },[])

        console.log('打印arr',arr);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

傾旎 2022-09-19 03:21:00

arr不是空数组么,那arr.some一直不会执行啊,不就是一直返回[]么

╭⌒浅淡时光〆 2022-09-19 03:21:00

找到问题了,有个地方写错了。

            !arr.some((v)=>v.value == k.name&&v.children.push({value: k.skill,})) && arr.push({value: k.name,childred:[k.skill]});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文