整合对象数组的算法问题,求解!
源数据
const resData = [
{dict: '东北', type: '二线', isProvinceCapital: '是', city: '哈尔滨', money: 100},
{dict: '东北', type: '二线', isProvinceCapital: '是', city: '沈阳', money: 200},
{dict: '东北', type: '三线', isProvinceCapital: '否', city: '大兴安岭', money: 300},
{dict: '华东', type: '一线', isProvinceCapital: '是', city: '上海', money: 400},
{dict: '华东', type: '二线', isProvinceCapital: '是', city: '杭州', money: 500},
{dict: '华东', type: '二线', isProvinceCapital: '否', city: '宁波', money: 600}
];
// 处理数据的方法!
function formatData(keys) {
}
下面是输入
和期望输出结果
// 1
// 输入 ['isProvinceCapital']
// 输出如下:
let list = [
{
isProvinceCapital: '是',
children: [
{dict: '东北', type: '二线', isProvinceCapital: '是', city: '哈尔滨', money: 100},
{dict: '东北', type: '二线', isProvinceCapital: '是', city: '沈阳', money: 200},
{dict: '华东', type: '一线', isProvinceCapital: '是', city: '上海', money: 400},
{dict: '华东', type: '二线', isProvinceCapital: '是', city: '杭州', money: 500},
]
},
{
isProvinceCapital: '否',
children: [
{dict: '东北', type: '三线', isProvinceCapital: '否', city: '大兴安岭', money: 300},
{dict: '华东', type: '二线', isProvinceCapital: '否', city: '宁波', money: 600}
]
}
];
// 2
// 输入 ['dict', 'type']
// 输出如下:
let list2 = [
{
dict: '东北',
children: [
{
dict: '东北',
type: '二线',
children: [
{dict: '东北', type: '二线', isProvinceCapital: '是', city: '哈尔滨', money: 100},
{dict: '东北', type: '二线', isProvinceCapital: '是', city: '沈阳', money: 200}
]
},
{
dict: '东北',
type: '三线',
children: [
{dict: '东北', type: '三线', isProvinceCapital: '否', city: '大兴安岭', money: 300}
]
}
]
},
{
dict: '华东',
children: [
{
dict: '华东',
type: '一线',
children: [
{dict: '华东', type: '一线', isProvinceCapital: '是', city: '上海', money: 400}
]
},
{
dict: '华东',
type: '二线',
children: [
{dict: '华东', type: '二线', isProvinceCapital: '是', city: '杭州', money: 500},
{dict: '华东', type: '二线', isProvinceCapital: '否', city: '宁波', money: 600}
]
},
]
}
];
求formatData
方法如何实现,感谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个只带了本层的 key,我睡觉了明天完善一下好啦又修了一下,确实好啦
就是递归多级分组。分组可以用
.reduce
自己实现,我懒,用 Lodash