在 Javascript 中的嵌套对象中输入零值

问题描述

我有一个类似于这个结构的嵌套对象:

data = {1950: {A:1,B:2,C:3,D:4},1960: {A:1,D:4,E:5},1970: {B:2,1980: {C:3,E:5}}

我正在努力解决如何为丢失的字母键/对补零,以便对象不再参差不齐。有没有人对我如何迭代和填充缺失值有任何想法?

解决方法

您可以使用 Object.keys() 迭代每个键并使用 defaultObject 填充 Object.assign() 中缺失的键。

const data = {1950: {A:1,B:2,C:3,D:4},1960: {A:1,D:4,E:5},1970: {B:2,1980: {C:3,E:5}},defaultObject = {A:0,B:0,C:0,D:0,E:0},result = Object.keys(data).reduce((r,k) => {
        r[k] = Object.assign({},defaultObject,data[k]);
        return r;
      },{});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }