数组展平问题

[{
manufacturer: "Dangerous Game",
site: {siteId: 1, capacity: 0.42}
},
{
manufacturer: "Game",
site: {siteId: 2, capacity: 0.42}
}]

请问如何将如上数组展开成下面这样,而且刚开始不知道上面数组的长度与属性名,只知道是返回的是一个数组,数组里面是对象,对象里的属性值还可能是对象、

[{
manufacturer: "Dangerous Game",
siteId: 1, 
capacity: 0.42
},
{
manufacturer: "Game",
siteId: 2, 
capacity: 0.42
}]
阅读 1.5k
1 个回答

再有其他情况学会自己举一反三

function deepMergeObject(obj) {
  return Object.keys(obj).reduce((res, k) => {
    if(Object.prototype.toString.call(obj[k]) == '[object Object]') res = {...res, ...deepMergeObject(obj[k])};
    else res[k] = obj[k]
    return res;
  }, {});
}

// [{
// manufacturer: "Dangerous Game",
// site: {siteId: 1, capacity: 0.42}
// },
// {
// manufacturer: "Game",
// site: {siteId: 2, capacity: 0.42}
// }].map(deepMergeObject);

[{
manufacturer: "Dangerous Game",
site: {siteId: 1, capacity: 0.42, deep: {a: 1,b:2}}
},
{
manufacturer: "Game",
site: {siteId: 2, capacity: 0.42, deep: {a: {x: 1}}, b: 2}
}].map(deepMergeObject);
推荐问题