Min*_*Vox 3 javascript arrays object lodash
我有以下结构:
var output = [{
"article": "BlahBlah",
"title": "Another blah"
}, {
"article": "BlahBlah",
"title": "Return of the blah"
}, {
"article": "BlahBlah2",
"title": "The blah strikes back"
}, {
"article": "BlahBlah2",
"title": "The blahfather"
}]
Run Code Online (Sandbox Code Playgroud)
从上面使用优雅的lodash单线开始,我需要创建以下结构。
var newOutput = [{
"article": "BlahBlah",
"titles": ["Another blah", "Return of the blah"]
}, {
"article": "BlahBlah2",
"titles": ["The blah strikes back", "The blahfather"]
}]
Run Code Online (Sandbox Code Playgroud)
非常感谢您一如既往地提供帮助。.对于解决方案的工作原理的解释非常有用。
使用_.groupBy然后_.map将所得对象转换为对象数组。
var newOutput = _(output)
.groupBy('article')
.map(function(v, k){ return { article: k, titles: _.map(v, 'title') } })
.value();
Run Code Online (Sandbox Code Playgroud)
var newOutput = _(output)
.groupBy('article')
.map(function(v, k){ return { article: k, titles: _.map(v, 'title') } })
.value();
Run Code Online (Sandbox Code Playgroud)
var output = [{"article":"BlahBlah","title":"Another blah"},{"article":"BlahBlah","title":"Return of the blah"},{"article":"BlahBlah2","title":"The blah strikes back"},{"article":"BlahBlah2","title":"The blahfather"}];
let newOutput = _(output)
.groupBy('article')
.map(function(v, k){ return { article: k, titles: _.map(v, 'title') } })
.value();
console.log(newOutput);Run Code Online (Sandbox Code Playgroud)
借助ES6箭头功能,
var newOutput = _(output)
.groupBy('article')
.map((v, k) => ({ article: k, titles: _.map(v, 'title') }))
.value();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1458 次 |
| 最近记录: |