简体   繁体   English

如何使用 JavaScript 合并不同的 JSON 对象?

[英]How to merge different JSON objects using JavaScript?

How to merge these JSON objects using JavaScript?如何使用 JavaScript 合并这些 JSON 对象?

If one key is missing then put null in the place of the value如果缺少一个键,则将 null 放在值的位置

Convert from:转换自:

[{"dateData": "2019-04-08", "geriatricDepressionScaleTotalScoreData": "5"}, 
{"dateData": "2019-04-09", "geriatricDepressionScaleTotalScoreData": "2"}]

[{"dateData": "2019-04-08", "digitSpanTotalScoreData": "10"},
{"dateData": "2019-04-09", "digitSpanTotalScoreData": "12"}]

[{"dateData": "2019-04-09", "immediateRecallStoryAData": "4", 
"delayedRecallStoryAData": "6"}]

[{"dateData": "2019-04-08", "phonologicalTotalData": "30"},
{"dateData": "2019-04-09", "phonologicalTotalData": "4"}]

Convert To:转换成:

[{"dateData": "2019-04-08", "geriatricDepressionScaleTotalScoreData": "5",
"digitSpanTotalScoreData": "10", "immediateRecallStoryAData": null,
"delayedRecallStoryAData": null, "phonologicalTotalData": "30"}, 
{"dateData": "2019-04-09", "geriatricDepressionScaleTotalScoreData": "2",
"digitSpanTotalScoreData": "12", "immediateRecallStoryAData": 4,
"delayedRecallStoryAData": 6, "phonologicalTotalData": "4"}]

You can do it using spread operator like您可以使用扩展运算符来做到这一点

var myArr = [{ "dateData": "2019-04-08", "geriatricDepressionScaleTotalScoreData": "5" }, { "dateData": "2019-04-09", "geriatricDepressionScaleTotalScoreData": "2" }];
    myArr.push(...[{ "dateData": "2019-04-08", "digitSpanTotalScoreData": "10" }, { "dateData": "2019-04-09", "digitSpanTotalScoreData": "12" }]);
    myArr.push(...[{ "dateData": "2019-04-09", "immediateRecallStoryAData": "4", "delayedRecallStoryAData": "6" }]);
    myArr.push(...[{ "dateData": "2019-04-08", "phonologicalTotalData": "30" }, { "dateData": "2019-04-09", "phonologicalTotalData": "4" }]);

    var final = JSON.stringify(myArr);
    console.log(final);

You can use Array .map() function to reformat the existing array of objects to a new array with newly reformatted objects.您可以使用 Array .map()函数将现有对象数组重新格式化为具有新重新格式化对象的新数组。

const arr = [{"dateData": "2019-04-08", "geriatricDepressionScaleTotalScoreData": "5"},
             {"dateData": "2019-04-09", "geriatricDepressionScaleTotalScoreData": "2"}];

const result = arr.map((el) => {
    const obj = {};
   obj['dateData'] = el.hasOwnProperty('dateData')?el['dateData'] :null;
   obj['geriatricDepressionScaleTotalScoreData'] = el.hasOwnProperty('geriatricDepressionScaleTotalScoreData')?el['geriatricDepressionScaleTotalScoreData'] :null;
   obj['digitSpanTotalScoreData'] = el.hasOwnProperty('digitSpanTotalScoreData')?el['digitSpanTotalScoreData'] :null;
   obj['immediateRecallStoryAData'] = el.hasOwnProperty('immediateRecallStoryAData')?el['immediateRecallStoryAData'] :null;
   obj['delayedRecallStoryAData'] = el.hasOwnProperty('delayedRecallStoryAData')?el['delayedRecallStoryAData'] :null;
   obj['phonologicalTotalData'] = el.hasOwnProperty('phonologicalTotalData')?el['phonologicalTotalData'] :null;

  return obj;
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM