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

javascript - 关于遍历数组对象变更数据格式的问题?

丁鸿信
2024-01-17
let outlist = [{    level: 1, content: '标题测试'},{    level: 2, content: '互联网理财融资模式'},{    level: 1, content: '滴滴出行融资模式存在问题对策'},{    level: 2, content: '市场竞争白热化导致的被动融资'},{    level: 3, content: '111122223333'}]

请问如何将以上代码转换成如下格式:

let newlist = [{    level: 1, content: '标题测试', children: [{        level: 2, content: '互联网理财融资模式'    }]},{    level: 1, content: '滴滴出行融资模式存在问题对策', children: [{        level: 2, content: '市场竞争白热化导致的被动融资', children: [{            level: 3, content: '111122223333'        }]    }]}]

我尝试了很多办法,但都未成功
最后退而求其次,想通过一个自定义数组区分对象所属层级,但依旧未果

function sortFun (num) {    let index = 0    for (let j = 0; j < meun.length; j++) {      if (meun[j].level == num + 1) {        meun[j].storey[num] = index++      }    }    return meun // 只能标注出第一层的下标    // sortFun(num++) // 想通过递归,但是报 “Maximum call stack size exceeded” 错误}···

共有1个答案

陶高扬
2024-01-17
function transform(list) {    const ret = {};    for (let i = 0; i < list.length; ++i) {        const { level } = item = {...list[i] };        const preLevel = Math.max(level - 1, 0);        if (!ret[preLevel]) {            ret[preLevel] = [item];            if (ret[level]) {                item.children = ret[level];                continue;            }        } else {            ret[preLevel].push(item);        }        ret[level] = item.children = [];    }    return ret[0];}console.log(transform(outlist));
 类似资料:
  • 一个数据格式是这样的: 把他转换成这样 用JS需要怎么做?

  • 本文向大家介绍JQuery $.each遍历JavaScript数组对象实例,包括了JQuery $.each遍历JavaScript数组对象实例的使用技巧和注意事项,需要的朋友参考一下 查看一个简单的jQuery的例子来遍历一个JavaScript数组对象。 上面的代码片断工作正常,提示 “apple”, “orange” … 等,如预期一样。 问题: JSON 字符串 下面的例子中,声明了一个

  • 代码在这,codesandbox,网不好的可以点这个echarts demo 求教我如何将tooltips的name1,name2,data1,data2映射为我需要的格式呢?比如名字一,名字二,数据一,数据二。除了用formatter返回html格式,这个太麻烦了,我想知道有没有通用的映射配置

  • 问题内容: 在Java中,您可以使用for循环遍历数组中的对象,如下所示: 您可以在JavaScript中做同样的事情吗? 问题答案: 您有几种选择: 1.顺序for循环: 优点 适用于各种环境 您可以使用和流控制语句 缺点 太冗长 势在必行 容易出现一对一的错误(有时也称为栅栏错误) 2. Array.prototype.forEach ES5规范引入了许多有益的数组方法,其中之一是,它为我们提

  • 问题内容: 我必须遍历json数组对象。 它具有以下结构。 基本上我在做的是prod_1是产品的名称,并且prod_1的版本列表已填充在其中。 所以现在我想要的是产品的名称以及它的版本。 问题在于可能有很多产品和该产品下的许多版本。所以我需要可以在 javascript 中使用适当的循环结构来对其进行处理。 最好将循环将产品名称存储在一个变量中,将版本存储在另一个变量中,因为我需要对产品名称进行一

  • 问题内容: 我有很多任意大小的数组。这是一个正方形阵列。我正在尝试掌握如何像a 而不是a 那样对角地遍历(我已经知道该怎么做)。到目前为止,我有以下代码: 我有三个循环,因为这是我做另一个对角线的方式: 在尝试中,我不断超越边界并获取ElementOutOfBounds异常。假设阵列如下(3x3而不是500x500): 我想将以下内容打印为字符串: 先前的SO问题对于整数数组也有类似的问题,解决方