Как добавить дополнительные поля в массив javascript из результата oData - PullRequest
0 голосов
/ 23 января 2019

У меня есть массив ramdom в javascript

var dataModel = [];

Я запросил URL oData и хочу заполнить результат в моем массиве dataModel []. И для каждого элемента я хочу добавить дополнительные поля

odataMod.read(
        "/",
        null, [],
        true,
        function (oData, oResponse) {
            var data = oData.results;

            data.forEach(function (item) {
                //Add the object 
                dataModel.push(item);
                //I want to add additional fields to every object in data 
                dataModel.push(item.ObjectType = "Chevron");
                dataModel.push(item.HierarchyNodeLevel = 0);
                dataModel.push(item.IsCriticalPath = false);
                dataModel.push(item.IsProjectMilestone = false);
                dataModel.push(item.DrillDownState = "expanded");
                dataModel.push(item.Magnitude = 5);

...

Примечание: ObjectType, DrillDownState, Magnitude (и т. Д.) - это поля, которые я хочу добавить со своими значениями Chevron, 0, false (и т. Д.) *

Ниже приведен скриншот текущего результата:

enter image description here

Но я хочу добавить дополнительные свойства внутри каждого элемента, а не снаружи, что я делаю не так? Другими словами, я хочу, чтобы дополнительные поля были внутри метаданных

Ниже приведен список мест, куда я хотел бы добавить элементы:

enter image description here

1 Ответ

0 голосов
/ 23 января 2019

Может быть, я неправильно понимаю, но я думаю, что вы хотите только один толчок на элемент в ответе. Остальные толчки следует заменить установкой свойств копии элемента ...

        data.forEach(function (item) {
            item.ObjectType = "Chevron";
            item.HierarchyNodeLevel = 0;
            item.IsCriticalPath = false;
            item.IsProjectMilestone = false;
            item.DrillDownState = "expanded";
            item.Magnitude = 5;
            dataModel.push(item);  // note: just one push

            // alternatively, so as to not mutate item...
            // const dataModelItem = Object.assign({
            //    ObjectType: "Chevron",
            //    HierarchyNodeLevel: 0,
            //    etc.
            // }, item);
            // dataModel.push(dataModelItem);
        }
...