我如何使用vanilla js或lodash将Scene.data [i] .trends返回到一个newArr
var newArr = superFunction();
console.log(newArr);
=> [{id:100},{id:101},{id:200},{id:201}]
数据集:
Scenes.data = [
{
id: 0,
trends: [
{
id: 100,
},
{
id: 101,
}]
},
{
id: 2,
trends: [
{
id: 200,
},
{
id: 201,
}]
}]
答案 0 :(得分:2)
你可以这样做:
var newArr = [].concat.apply([], Scenes.data.map(function(v){ return v.trends }));
答案 1 :(得分:2)
使用lodash你可以使用pluck和flattern:
var result = _(scenes).pluck('trends').flattern().value();
或者可以减少(普通js):
var result = scenes.reduce(function(prev, curr) {
return prev.concat(curr.trends);
}, []);
答案 2 :(得分:1)
你可以这样做:
var newArr = [];
Scenes.data.forEach(function(x) {
x.trends.forEach(function(trend) {
var obj = {};
for(var key in trend) {
if (trend.hasOwnProperty(key)) {
obj["" + key + ""] = trend[key];
}
}
newArr.push(obj);
});
});