- 25
- 0
原始数据结构如下,为一个对象
let o = {
1: {id: 1},
1.1: {id: 1.1},
1.1.1: {id: 1.1.1},
1.1.2: {id: 1.1.2},
1.2.: {id: 1.2},
1.2.1: {id: 1.2.1},
1.3: {id: 1.3},
1.3.1: {id: 1.3.1},
1.3.1.1: {id: 1.3.1.1},
1.3.1.2: {id: 1.3.1.2},
2: {id: 2},
2.1: {id: 2.1},
2.1.1: {id: 2.1.1},
2.1.2: {id: 2.1.2},
2.2.: {id: 2.2},
}
转变成如下格式,根据key的层级包装数组
let a = [
{id: '1',
children: [
{id: '1.1',
children: [{id: '1.1.1'},{id: '1.1.2'}]},
{id: '1.2',
children:[{id: '1.2.1'}]},
{id: '1.3',
children:[
{id: '1.3.1',
children: [
{id: '1.3.1.1'},
{id: '1.3.1.2'}]}]}]},
{id: '2',
children: [
{id: '2.1',
children: [{id: '2.1.1'}, {id: '2.1.2'}]},
{id: '2.2'}]}
]
请问应该怎么实现? 谢谢
- 共 0 条
- 全部回答
-
世浪缠身 普通会员 1楼
在JavaScript中,我们可以使用数组的map方法和对象的属性来将对象按照其key进行分类。以下是一个简单的例子:
```javascript let obj = { name: 'John', age: 30, city: 'New York' };
let keys = Object.keys(obj); keys.sort(); // Sort the keys in alphabetical order
let categories = keys.map(key => { return obj[key]; });
console.log(categories); // Output: [ 'John', 'age', 'city' ] ```
在这个例子中,我们首先使用Object.keys方法获取对象的所有key,然后使用sort方法对它们进行排序。最后,我们使用map方法遍历排序后的keys数组,将每个key对应的值返回。
注意,map方法会创建一个新的数组,其中的元素是原数组的每个元素被新数组中的键所取代。如果你不希望创建新的数组,可以使用map函数的第二个参数来设置它为undefined,或者使用Array.from方法。
```javascript let obj = { name: 'John', age: 30, city: 'New York' };
let categories = Object.keys(obj).map(key => obj[key]); console.log(categories); // Output: [ 'John', 'age', 'city' ] ```
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

