当前位置: 首页 > 知识库问答 >
问题:

在javaScript中创建一个函数,将以下数据作为输入,预期输出数据如下:[重复]

龙繁
2023-03-14

输入数据

const inputData = [
  {
    id: 1,
    name: "Fruit",
  },
  {
    id: 2,
    name: "Apple",
    parent: 1,
  },
  {
    id: 3,
    name: "Orange",
    parent: 1,
  },
  {
    id: 4,
    name: "Banana",
    parent: 1,
  },
  {
    id: 5,
    name: "Berry",
    parent: 1,
  },
  {
    id: 6,
    name: "Drink",
  },
  {
    id: 7,
    name: "Water",
    parent: 6,
  },
  {
    id: 8,
    name: "Lemonade",
    parent: 6,
  },
  {
    id: 9,
    name: "Tea",
    parent: 6,
  },
  {
    id: 10,
    name: "Soup",
  },
];

**预期输出:**

const outputData = [
  {
    id: 1,
    name: "Fruit",
    children: [
      {
        id: 2,
        name: "Apple",
        parent: 1,
      },
      {
        id: 3,
        name: "Orange",
        parent: 1,
      },
      {
        id: 4,
        name: "Banana",
        parent: 1,
      },
      {
        id: 5,
        name: "Berry",
        parent: 1,
      },
    ],
  },
  {
    id: 6,
    name: "Drink",
    children: [
      {
        id: 7,
        name: "Water",
        parent: 6,
      },
      {
        id: 8,
        name: "Lemonade",
        parent: 6,
      },
      {
        id: 9,
        name: "Tea",
        parent: 6,
      },
    ],
  },
  {
    id: 10,
    name: "Soup",
    children: [],
  },
]

共有1个答案

汪弘毅
2023-03-14

尝试过滤和映射

const inputData = [
  {
    id: 1,
    name: "Fruit",
  },
  {
    id: 2,
    name: "Apple",
    parent: 1,
  },
  {
    id: 3,
    name: "Orange",
    parent: 1,
  },
  {
    id: 4,
    name: "Banana",
    parent: 1,
  },
  {
    id: 5,
    name: "Berry",
    parent: 1,
  },
  {
    id: 6,
    name: "Drink",
  },
  {
    id: 7,
    name: "Water",
    parent: 6,
  },
  {
    id: 8,
    name: "Lemonade",
    parent: 6,
  },
  {
    id: 9,
    name: "Tea",
    parent: 6,
  },
  {
    id: 10,
    name: "Soup",
  },
];

var newData=inputData.filter(i=> !i.parent).map(i=>{
let children=inputData.filter(c=> c.parent == i.id);
return {...i,children}
});

console.log(newData)
 类似资料:
  • 我是C语言的初学者。如果我的问题是蹩脚的,请不要介意。在我写的这个程序中,当我第一次使用“for”循环时,我希望一个数组中只存储3个值,但它存储4个值,在接下来的“for”循环中,如预期的那样显示3个值。我的问题是为什么在第一个for循环中需要4个值而不是3个?

  • 我是新的反应,我有一个问题,如何获得另一个组件的onclick值。

  • 本文向大家介绍写出一个函数,输入是两个数组,输出是将两个数组中所有元素排序以后用一个数组输出。相关面试题,主要包含被问及写出一个函数,输入是两个数组,输出是将两个数组中所有元素排序以后用一个数组输出。时的应答技巧和注意事项,需要的朋友参考一下 参考回答: //快速排序 //两路归并 cerr << "内存分配失败" << endl;  

  • 2.6 数据的输入和输出 任何程序都需要与用户进行沟通,这就要求程序具有输入输出的功能。输入是指程序从 用户那儿获取数据,输出是指程序向用户显示或打印数据。 程序中负责与用户沟通的部分称为用户界面,它是程序设计的一个重要组成部分。设计 用户界面时要遵循的一个主要原则是所谓“用户友好性”,即要让用户在与计算机程序交互 时感到非常简单、方便和不易犯错。本章只讨论简单的数据输入输出,本书后文将专门讨论

  • 我已经创建了一个简单的注册系统,它可以按预期工作,尽管我想让用户在注册时从下拉菜单中选择一个值,例如男性或女性。然后,在数据库中可以区分该用户是男性还是女性,以及他们的用户名和密码。我使用一个简单的php下拉菜单从中选择数据。 我想知道如何在我的注册系统中实现这一点,允许用户在注册时从下拉菜单中选择性别,并将其与用户名和密码一起插入数据库。谢谢 HTML- PHP-

  • 问题内容: Python中如何将输入数据转换为数字? 问题答案: Python 2.x 有两个函数用于获取用户输入,分别称为和。它们之间的区别是,不评估数据并以字符串形式原样返回。但是,将对你输入的内容进行评估,评估结果将返回。例如, 5 + 17评估数据,结果为22。当它对表达式求值时5 + 17,它将检测到你要添加两个数字,因此结果也将是同一int类型。因此,类型转换是免费完成的,并22作为的