【发布时间】:2017-02-20 22:53:14
【问题描述】:
我的对象如下所示:
const features = [{
'name': 'feature1', 'tags':
[{'weight':10, 'tagName': 't1'},{'weight':20, 'tagName': 't2'}, {'weight':30, 'tagName': 't3'}]
},
{
'name': 'feature2', 'tags':
[{'weight':40, 'tagName': 't1'}, {'weight':5, 'tagName':'t2'}, {'weight':70, 'tagName':'t3'}]
},
{
'name': 'feature3', 'tags':[
{'weight':50, 'tagName': 't1'}, {'weight':2, 'tagName': 't2'}, {'weight':80, 'tagName': 't3'}]
}]
我希望我的输出看起来像这样:
const features = [{'name':'feature1', 'weight':10, 'tagName':'t1'},
{'name':'feature1', 'weight':20, 'tagName':'t2'}, ...
{'name':'feature3', 'weight':80, 'tagName':'t3'}]
我尝试了merge 和flatten,但它不起作用。
更新 1 我试过这个:
let feat = features;
results = []
_.each(feat, (item) => {
console.log(item);
results.push(_.flatten(_.pick(item.tags, 'weight'))); // pick for certain keys.
}
更新 2 这解决了我的问题
_.each(features, (item) => {
_.each(item.tags, (itemTag) => {
results.push({'name':item.name, 'weight':itemTag.weight, 'tagName':itemTag.tagName})})})
但我想知道是否有更多的lodash 方式来做到这一点!
【问题讨论】:
-
Underscore to flatten nested array of parent/child objects 的可能重复这谈到了下划线,但也适用于 lodash。
-
这完全不适合我:/
-
请edit你的问题表明你已经尝试过什么以及它对你没有用。
-
我还尝试了另一种方法来
_.mergeitem.tags但它没有工作,因为它具有相同的键。我在这里错过了什么?
标签: lodash