Как добавить массив объектов в запись массива odata

Я хочу добавить массив объектов к определенной записи массива odata. Это JSON-модель в sapui5, и я хотел сделать oModel.getData()[j].setProperty(""), но это не так. Кто-нибудь может помочь?

У меня есть:

    [{
            attributes: (5) [{…}, {…}, {…}, {…}, {…}]
            creationDate: "2019-05-20T09:14:16.622Z"
            deleted: false
            eventDate: "20.05.19"            
            message: "Aufgabe xyz"
            object: "Aufgabe"            
    },
{
            attributes: (5) [{…}, {…}, {…}, {…}, {…}]
            creationDate: "2019-05-20T09:14:16.622Z"
            deleted: false
            eventDate: "21.05.19"            
            message: "Aufgabe"
            object: "Aufgabe"    }
]

И я хочу добавить новый элемент:

[{
        description: "Ereignisgruppe"
        key: "objectGroup"
        value: "Aufgaben"
    },{
        description: "Ereignis"
        key: "object"
        value: "Aufgabe"
   }]

Чтобы получить это:

 [{
                attributes: (5) [{…}, {…}, {…}, {…}, {…}]
                creationDate: "2019-05-20T09:14:16.622Z"
                deleted: false
                eventDate: "20.05.19"            
                message: "Aufgabe xyz"
                object: "Aufgabe",
                masterAttributes: (2) [{…}, {…}]        <-------------- new  
        },
    {
                attributes: (5) [{…}, {…}, {…}, {…}, {…}]
                creationDate: "2019-05-20T09:14:16.622Z"
                deleted: false
                eventDate: "21.05.19"            
                message: "Aufgabe"
                object: "Aufgabe"    
   }]

С наилучшими пожеланиями!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
333
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

В вашем json отсутствует запятая за каждым атрибутом.

Затем вы можете добавить «masterAttributes», например:

oModel[0].masterAttributes = masterAttributes;

проверьте эту скрипку:

     var oModel= [{
                attributes: [],
                creationDate: "2019-05-20T09:14:16.622Z",
                deleted: false,
                eventDate: "20.05.19"  ,          
                message: "Aufgabe xyz",
                object: "Aufgabe"       
        },
    {
                attributes: [],
                creationDate: "2019-05-20T09:14:16.622Z",
                deleted: false,
                eventDate: "21.05.19",        
                message: "Aufgabe",
                object: "Aufgabe"    }
    ];
    
    var masterAttributes = [{
        description: "Ereignisgruppe",
        key: "objectGroup",
        value: "Aufgaben"
    },{
        description: "Ereignis",
        key: "object",
        value: "Aufgabe",
   }];
    
   // add the other array
   oModel[0].masterAttributes = masterAttributes;
   
   console.info("oModel after adding masterAttributes ");
   console.info(oModel);
    // es6
let oModel= [{
                        attributes: [],
                        creationDate: "2019-05-20T09:14:16.622Z",
                        deleted: false,
                        eventDate: "20.05.19"  ,          
                        message: "Aufgabe xyz",
                        object: "Aufgabe"       
                },
            {
                        attributes: [],
                        creationDate: "2019-05-20T09:14:16.622Z",
                        deleted: false,
                        eventDate: "21.05.19",        
                        message: "Aufgabe",
                        object: "Aufgabe"    }
            ];

            let masterAttributes = [{
                description: "Ereignisgruppe",
                key: "objectGroup",
                value: "Aufgaben"
            },{
                description: "Ereignis",
                key: "object",
                value: "Aufgabe",
           }];
           let newData = { ...oModel, [0]: { ...oModel[0], masterAttributes: masterAttributes}};
           console.info(newData);

Вам просто нужно создать новое свойство и присвоить соответствующие значения

var oData= [{
    attributes: [],
    creationDate: "2019-05-20T09:14:16.622Z",
    deleted: false,
    eventDate: "20.05.19"  ,          
    message: "Aufgabe xyz",
    object: "Aufgabe"       
}, {
    attributes: [],
    creationDate: "2019-05-20T09:14:16.622Z",
    deleted: false,
    eventDate: "21.05.19",        
    message: "Aufgabe",
    object: "Aufgabe"    
   }    
];
var oMergeData = [{
    description: "Ereignisgruppe",
    key: "objectGroup",
    value: "Aufgaben"
   },{
    description: "Ereignis",
    key: "object",
    value: "Aufgabe",
   }
];
//Loop main object and add new property with corresponding values
for( var i in oData) { 
  var oNewData = oData[i];
  oNewData['masterAttributes '] = oMergeData[i];
}

Другие вопросы по теме