【问题标题】:Merge child properties in objects with the same key name in ES6?在ES6中合并具有相同键名的对象中的子属性?
【发布时间】:2018-03-15 00:38:42
【问题描述】:

我想在 ES6 中根据一周中的同一天合并和排列嵌套对象?如何添加新对象?

请看下面的例子:

let opens = {name:"Fri", series: [name: "opens", value: 24]}
let clicks= {name:"Fri", series: [name: "clicks", value: 22]}
let sent= {name:"Fri", series: [name: "sent", value: 22]}

Into {name:"Fri", series: [{name: "opens", value: 24},{name: "opens", value: 24},{[name: "sent", value: 22]}]}

【问题讨论】:

  • [name: "opens", value: 24] 无效。
  • 你似乎有一个可能应该是一个对象的数组?

标签: javascript angular ecmascript-6


【解决方案1】:

假设一个有效的对象,即:

{name:"Fri", series: {name: "opens", value: 24}}

可以将三个对象放入一个数组中,然后执行函数reduce

let opens = {name:"Fri", series: {name: "opens", value: 24}};
let clicks= {name:"Fri", series: {name: "clicks", value: 22}};
let sent= {name:"Fri", series: {name: "sent", value: 22}};

var result = Object.values([opens, clicks, sent].reduce((a, c) => {
  (a[c.name] || (a[c.name] = {name: c.name, series: []})).series.push(c.series);  
  return a;
}, {}));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 2022-11-01
    • 2021-03-22
    • 1970-01-01
    • 2016-08-21
    • 2017-03-17
    相关资源
    最近更新 更多