javascript-对象的组数组嵌套了一些具有特定名称的键
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-对象的组数组嵌套了一些具有特定名称的键,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1500字,纯文字阅读大概需要3分钟。
内容图文
![javascript-对象的组数组嵌套了一些具有特定名称的键](/upload/InfoBanner/zyjiaocheng/686/7b4bc5bda31d48e1890bab5a83e913e6.jpg)
我有此对象数组,需要对其进行修改以使其更容易呈现.
const items = [
{
tab: 'Results',
section: '2017',
title: 'Full year Results',
description: 'Something here',
},
{
tab: 'Results',
section: '2017',
title: 'Half year Results',
description: 'Something here',
},
{
tab: 'Reports',
section: 'Marketing',
title: 'First Report',
description: 'Something here',
},
...
];
我正在尝试对其进行修改,并按特定的键对它们进行分组.这个想法是要有这个输出.如您所见,键的名称可能与项目中的实际名称不同.我认为这与以前的帖子有些不同.
const output = [
{
tab: 'Results',
sections: [
{
section: '2017',
items: [ { 'item that belongs here' }, { ... } ],
},
},
{
tab: 'Reports',
sections: [
{
section: 'Marketing',
items: [ { ... }, { ... } ],
},
},
...
]
我尝试使用lodash.groupby,但是它并不能完全满足我的需求.
关于如何处理它的任何想法?
非常感谢!!
解决方法:
可以通过_.map和_.groupBy的巧妙组合来完成.
const items = [
{
tab: 'Results',
section: '2017',
title: 'Full year Results',
description: 'Something here',
},
{
tab: 'Results',
section: '2017',
title: 'Half year Results',
description: 'Something here',
},
{
tab: 'Reports',
section: 'Marketing',
title: 'First Report',
description: 'Something here',
}
];
function groupAndMap(items, itemKey, childKey, predic){
return _.map(_.groupBy(items,itemKey), (obj,key) => ({
[itemKey]: key,
[childKey]: (predic && predic(obj)) || obj
}));
}
var result = groupAndMap(items,"tab","sections",
arr => groupAndMap(arr,"section", "items"));
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
内容总结
以上是互联网集市为您收集整理的javascript-对象的组数组嵌套了一些具有特定名称的键全部内容,希望文章能够帮你解决javascript-对象的组数组嵌套了一些具有特定名称的键所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。