我一直在搜索,但是似乎找不到答案。
比方说,我有一个数据库,其中包含有关房子每个房间使用多少公斤配料的信息(取决于一年中的季节)以及使用这些配料的厨师,尽管该厨师仅用于“ WHERE”子句。此信息由Web应用程序(不是由我开发)收集,并存储在其数据库中。我试图通过创建一些新页面和报告来扩展应用程序,主要是为了显示信息。 SQL(Oracle)输出如下(我省略了几列,不感兴趣):
| ROOM_ID | SEASON | ING_S1 | ING_S2 | ING_S3 |
| 1234567 | 1 | 35 | | |
| 1234567 | 2 | | 24 | |
| 1234567 | 3 | | | 15 |
| 2233445 | 2 | | 60 | |
| 2233445 | 3 | | | 41 |
成分列来自一系列非常复杂的联接,需要从应用程序中的其他表中提取它们。
此Web应用程序允许我在HTML中将其放入JSON,并且设法使它看起来像这样:
"1234567" : {
"roomName" : "blabla",
"season" : "1",
"ingredientsS1" : "35",
"ingredientsS2" : "",
"ingredientsS3" : "",
},
"1234567" : {
"roomName" : "blabla",
"season" : "2",
"ingredientsS1" : "",
"ingredientsS2" : "24",
"ingredientsS3" : "",
},
"1234567" : {
"roomName" : "blabla",
"season" : "3",
"ingredientsS1" : "",
"ingredientsS2" : "",
"ingredientsS3" : "15",
},
以此类推。...
我想看的是:
"1234567" : {
"roomName" : "blabla",
"ingredientsS1" : "35",
"ingredientsS2" : "24",
"ingredientsS3" : "15",
},
我一生都无法找出如何合并roomID定义的每个对象的属性!我试图以一百万种方式对查询进行重做,以查看是否可以将所有结果合并为一行(listagg等),从而使Web应用程序仅创建一个JSON对象,我试图查看解决方案使用jQuery和普通JavaScript ...没有骰子。
我也将开始使用Vue.js向页面添加更多功能,但是我似乎也找不到在该路线上的任何解决方案。
感谢您的帮助,感谢您的宝贵时间!
答案 0 :(得分:0)
假设您从数据库中获取数据作为对象,则可以迭代这些对象并获取新对象的属性。
要分配值,您可以使用SEASON
来解决相关内容。
var data = [
{ ROOM_ID: 1234567, SEASON: 1, ING_S1: 35, ING_S2: null, ING_S3: null },
{ ROOM_ID: 1234567, SEASON: 2, ING_S1: null, ING_S2: 24, ING_S3: null },
{ ROOM_ID: 1234567, SEASON: 3, ING_S1: null, ING_S2: null, ING_S3: 15 },
{ ROOM_ID: 2233445, SEASON: 2, ING_S1: null, ING_S2: 60, ING_S3: null },
{ ROOM_ID: 2233445, SEASON: 3, ING_S1: null, ING_S2: null, ING_S3: 41 }
],
result = {};
data.forEach(({ ROOM_ID, SEASON, ING_S1, ING_S2, ING_S3 }) => {
result[ROOM_ID] = result[ROOM_ID] || { roomName: 'blabla', ingredientsS1: '', ingredientsS2: '', ingredientsS3: '' };
result[ROOM_ID]['ingredientsS' + SEASON] = [ING_S1, ING_S2, ING_S3][SEASON - 1];
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }