【发布时间】:2020-09-18 00:42:59
【问题描述】:
我有一个具有结构的对象
"Office": {
"California" : {
"Contract1": {
1: {Price: 1000, Count: 5},
2: {Price: 2000, Count: 11},
3: {Price: 3000, Count: 3},
4: {Price: 2000, Count: 1},...
},
"Contract2": {
1: {Price: 7000, Count: 6},
2: {Price: 1000, Count: 4},
3: {Price: 67000, Count: 6},
4: {Price: 500, Count: 2},...
},
"Contract3": {
1: {Price: 4000, Count: 4},
2: {Price: 4000, Count: 1},
3: {Price: 5000, Count: 12},
4: {Price: 5000, Count: 2},...
}
},
"North Carolina" : {
"Contract1": {
1: {Price: 7000, Count: 4},
2: {Price: 7000, Count: 4},
3: {Price: 7000, Count: 4},
4: {Price: 7000, Count: 4},...
},
"Contract2": {
1: {Price: 6000, Count: 4},
2: {Price: 2000, Count: 10},
3: {Price: 3000, Count: 3},
4: {Price: 2000, Count: 3},...
},
"Contract3": {
1: {Price: 4000, Count: 5},
2: {Price: 2000, Count: 4},
3: {Price: 4000, Count: 3},
4: {Price: 2000, Count: 4},...
},...
}
我想把它简化为:
"Office": {
"California" : {
"Contract1": {
1: {Price: 6000, Count: 19},
2: {Price: 2000, Count: 1},...
},
"Contract2": {
1: {Price: 75000, Count: 16},
2: {Price: 500, Count: 2},...
},
"Contract3": {
1: {Price: 13000, Count: 17},
2: {Price: 5000, Count: 2},...
}
},
"North Carolina" : {
"Contract1": {
1: {Price: 21000, Count: 12},
2: {Price: 7, Count: 4},...
},
"Contract2": {
1: {Price: 11000, Count: 17},
2: {Price: 2000, Count: 3},...
},
"Contract3": {
1: {Price: 10000, Count: 12},
2: {Price: 2000, Count: 4},...
},...
}
第一个结构上每个合同下的数字对象代表过去的月份。在第二个结构中,我想总结前 3 个数字对象的属性可以称之为 1。那么第二个 3 将是 2。这些是四分之一。
我想我可以通过 map、reduce 和 filter 的某种组合来做到这一点,但这些是数组函数,而且我有一个对象,所以我不知道该怎么做。我需要为非 ES6 解决方案执行此操作。
非常感谢任何指导。
【问题讨论】:
-
到目前为止你尝试过什么?你遇到了什么问题?有什么错误吗?有
for...in...、for...of...、Object.keys()、Object.values()、Object.entries()、.map()、.reduce()、...
标签: javascript dictionary object reduce