如何将其他字段从 oData 结果推送到 javascript 数组

How to push additional fields to a javascript array from an oData result

我在 javascript

中有一个随机数组
var dataModel = [];

我查询了一个 oData url,我想将结果填充到我的 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 (等...)

下面是当前结果的截图:

但是我想在每个项目内部而不是外部添加额外的属性,我做错了什么?换句话说,我希望附加字段位于元数据中

下面是我要添加项目的 sc:

也许我误会了,但我认为您希望响应中的每个项目只推送一次。其他推送应该替换为项目副本的设置属性...

        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);
        }