Javascript Lodash将对象数组转换为数组
我有这样的对象数组:Javascript Lodash将对象数组转换为数组,javascript,lodash,Javascript,Lodash,我有这样的对象数组: [ { season: 1, episodes: [ { title:'ep1 title', season:1, }, { title:'ep2 title', season:1, }, { title:'ep3 title', season:1, }] }, { sea
[ { season: 1,
episodes:
[
{
title:'ep1 title',
season:1,
},
{
title:'ep2 title',
season:1,
},
{
title:'ep3 title',
season:1,
}] },
{ season: 2,
episodes:
[ {
title:'ep1 title',
season:2,
},
{
title:'ep2 title',
season:2,
},
{
title:'ep3 title',
season:2,
} ] },
{ season: 3,
episodes:
[ {
title:'ep1 title',
season:3,
},
{
title:'ep2 title',
season:3,
},
{
title:'ep3 title',
season:3,
} ] },
]
我想用loadsh将其转换为如下数组:
[
{
title:'ep1 title',
season:1,
},
{
title:'ep2 title',
season:1,
},
{
title:'ep3 title',
season:1,
},
{
title:'ep1 title',
season:2,
},
{
title:'ep2 title',
season:2,
},
{
title:'ep3 title',
season:2,
},
{
title:'ep1 title',
season:3,
},
{
title:'ep2 title',
season:3,
},
{
title:'ep3 title',
season:3,
}
]
我只想拍几集
使用lodash将对象转换为数组
如何使用lodash将两个数组合并到一个对象中
lodash:从对象数组中计算值如果必须是lodash,则可以使用:
var数据=[{季度:1,剧集:[{title:'ep1 title',季度:1,},{title:'ep2 title',季度:1,},{title:'ep3 title',季度:1,}]},{季度:2,剧集:[{title:'ep1 title',季度:2,},{title:'ep3 title:'ep1 title',季度:3,},{title:'ep2,},{标题:'ep3标题',季节:3,}]},];
var flat=uu.flatMap(数据“事件”);
console.log(平面);
。作为控制台包装{最大高度:100%!重要;顶部:0;}
如果必须使用lodash,您可以使用:
var数据=[{季度:1,剧集:[{title:'ep1 title',季度:1,},{title:'ep2 title',季度:1,},{title:'ep3 title',季度:1,}]},{季度:2,剧集:[{title:'ep1 title',季度:2,},{title:'ep3 title:'ep1 title',季度:3,},{title:'ep2,},{标题:'ep3标题',季节:3,}]},];
var flat=uu.flatMap(数据“事件”);
console.log(平面);
。作为控制台包装{最大高度:100%!重要;顶部:0;}
无需使用任何特殊的lodash函数-使用基本javascript数组即可轻松完成此操作。reduce()
如下所示:
var oldArr=[{
季节:1,
剧集:[{
标题:“ep1标题”,
季节:1,
},
{
标题:“ep2标题”,
季节:1,
},
{
标题:“ep3标题”,
季节:1,
}
]
},
{
第二季,
剧集:[{
标题:“ep1标题”,
第二季,
},
{
标题:“ep2标题”,
第二季,
},
{
标题:“ep3标题”,
第二季,
}
]
},
{
第三季,
剧集:[{
标题:“ep1标题”,
第三季,
},
{
标题:“ep2标题”,
第三季,
},
{
标题:“ep3标题”,
第三季,
}
]
},
]
var newArr=oldArr.reduce(函数(结果,当前){
返回result.concat(当前剧集);
}, []);
console.log(newArr);
无需使用任何特殊的lodash函数-使用基本javascript数组.reduce()
即可轻松完成此操作,如下所示:
var oldArr=[{
季节:1,
剧集:[{
标题:“ep1标题”,
季节:1,
},
{
标题:“ep2标题”,
季节:1,
},
{
标题:“ep3标题”,
季节:1,
}
]
},
{
第二季,
剧集:[{
标题:“ep1标题”,
第二季,
},
{
标题:“ep2标题”,
第二季,
},
{
标题:“ep3标题”,
第二季,
}
]
},
{
第三季,
剧集:[{
标题:“ep1标题”,
第三季,
},
{
标题:“ep2标题”,
第三季,
},
{
标题:“ep3标题”,
第三季,
}
]
},
]
var newArr=oldArr.reduce(函数(结果,当前){
返回result.concat(当前剧集);
}, []);
console.log(newArr)
不确定问题是什么?你能包括你在OP上尝试过的javascript
吗?顺便说一下,输出仍然是一个对象数组。主题或你的问题可能有误导性。@M我知道我的错误,你对标题有什么建议?不确定问题是什么?你能包括javascript
吗你在OP上试过了吗?顺便说一下,输出仍然是一组对象。主题或你的问题可能有误导性。@M首先我知道我的错误,你对标题有什么建议?
var flat = _.flatMap(data, 'episodes');