【问题标题】:change some value in array javascript before post to API在发布到 API 之前更改数组 javascript 中的一些值
【发布时间】:2017-04-01 07:38:40
【问题描述】:

我有一个数组:

[{"IDAlokasiEmiten":154,"IDOrganization":12,"NamaOrganization":null,"CodeEmiten":"ANTM","NameEmiten":"AAneka Tambang (Persero) Tbk"},{"IDAlokasiEmiten":0,"IDOrganization":null,"NamaOrganization":null,"CodeEmiten":"ADHI","NameEmiten":"Adhi Karya (Persero) Tbk"}]

如何在发布到 API 之前更改一些值?

我想将 API POST 到:

[{"IDAlokasiEmiten":0,"IDOrganization":12,"NamaOrganization":null,"CodeEmiten":"ANTM","NameEmiten":"AAneka Tambang (Persero) Tbk"},{"IDAlokasiEmiten":0,"IDOrganization":12,"NamaOrganization":null,"CodeEmiten":"ADHI","NameEmiten":"Adhi Karya (Persero) Tbk"}]

这是我的 AngularJS:

// GET Detail Alokasi Emiten
    $scope.emit.detailDaftarEmiten = [];
    $scope.addItemAlokasi = function () {
        $scope.emit.detailDaftarEmiten.push({
            IDAlokasiEmiten: 0,
            IDOrganization: 12,
            NamaOrganization: '',
            CodeEmiten: $scope.emit.detailDaftarEmiten.CodeEmiten,
            NameEmiten: $scope.emit.detailDaftarEmiten.NameEmiten
        });
        $scope.emit.detailDaftarEmiten.IDAlokasiEmiten = '';
        $scope.emit.detailDaftarEmiten.IDOrganization = '';
        $scope.emit.detailDaftarEmiten.NamaOrganization = '';
        $scope.emit.detailDaftarEmiten.CodeEmiten = '';
        $scope.emit.detailDaftarEmiten.NameEmiten = ''
    };
    $scope.resetForm = function () {
        $scope.emit.detailDaftarEmiten.IDAlokasiEmiten = ''; 
        $scope.emit.detailDaftarEmiten.IDOrganization = '';
        $scope.emit.detailDaftarEmiten.NamaOrganization = '';
        $scope.emit.detailDaftarEmiten.CodeEmiten = '';
        $scope.emit.detailDaftarEmiten.NameEmiten = ''
    };
    $scope.deleteItem = function (index) {
        $scope.emit.detailDaftarEmiten.splice(index, 1);
    };
    $scope.getTotalItems = function () {
        return $scope.detailDaftarEmiten.length;
    };

但它不起作用:(

我想为(IDAlokasiEmiten=0IDOrganization=12)设置所有值数组。

【问题讨论】:

    标签: javascript c# asp.net arrays


    【解决方案1】:

    您可以尝试以下语句。

    var arr = [{"IDAlokasiEmiten":154,"IDOrganization":12,"NamaOrganization":null,"CodeEmiten":"ANTM","NameEmiten":"AAneka Tambang (Persero) Tbk"},{"IDAlokasiEmiten":0,"IDOrganization":null,"NamaOrganization":null,"CodeEmiten":"ADHI","NameEmiten":"Adhi Karya (Persero) Tbk"}];
    arr.map(i=>{i.IDAlokasiEmiten=0;i.IDOrganization=12;})
    

    【讨论】:

      【解决方案2】:

      首先是它的json数据。

      你必须先反序列化,然后再序列化回json。

      public class Sample
      {
          public int IDAlokasiEmiten { get; set; }
          public int? IDOrganization { get; set; }
          public object NamaOrganization { get; set; }
          public string CodeEmiten { get; set; }
          public string NameEmiten { get; set; }
      }
      

      同样使用 NewtonSoft.Json dll。

      您可以将此json反序列化为SampleClass[],然后对其进行迭代并设置每个对象的属性。

      json

      [{
          "IDAlokasiEmiten": 154,
          "IDOrganization": 12,
          "NamaOrganization": null,
          "CodeEmiten": "ANTM",
          "NameEmiten": "AAneka Tambang (Persero) Tbk"
      }, {
          "IDAlokasiEmiten": 0,
          "IDOrganization": null,
          "NamaOrganization": null,
          "CodeEmiten": "ADHI",
          "NameEmiten": "Adhi Karya (Persero) Tbk"
      }]
      

      C# 代码:

          string json = ""; //your json string.
          SampleClass[] arr = JsonConvert.DeserializeObject<SampleClass[]>(json);
          foreach (SampleClass obj in arr)
          {
              obj.IDAlokasiEmiten = 0;
              obj.IDOrganization = 12;
          }
      

      【讨论】:

        【解决方案3】:
        var a = [{"IDAlokasiEmiten":154,"IDOrganization":12,"NamaOrganization":null,"CodeEmiten":"ANTM","NameEmiten":"AAneka Tambang (Persero) Tbk"},{"IDAlokasiEmiten":0,"IDOrganization":null,"NamaOrganization":null,"CodeEmiten":"ADHI","NameEmiten":"Adhi Karya (Persero) Tbk"}];
        
        a.forEach(function(e) {
          e.IDAlokasiEmiten = 0;
          e.IDOrganization = 12;
        });
        
        JSON.stringify(a);
        

        【讨论】:

        • 这可能会回答这个问题,但提供一些关于为什么以及如何工作的解释可能是个好主意。仅代码的答案对将来发现此问题的其他人没有太大帮助。
        【解决方案4】:

        是的,您可以使用 forEach 方法使用没有库的普通 javascript 来做到这一点。

        forEach

        arr=[{"IDAlokasiEmiten":154,"IDOrganization":12,"NamaOrganization":null,"CodeEmiten":"ANTM","NameEmiten":"AAneka Tambang (Persero) Tbk"},{"IDAlokasiEmiten":0,"IDOrganization":null,"NamaOrganization":null,"CodeEmiten":"ADHI","NameEmiten":"Adhi Karya (Persero) Tbk"}]
        arr.forEach(function(a){
          a["IDAlokasiEmiten"]=0;
          a["IDOrganization"]=12;
        });
        console.log(arr);

        【讨论】:

          【解决方案5】:
          var obj=your code;
          obj[0]["IDOrganisation"]=12;
          //0 -> first object in array
          

          这是简单的javascript。您应该访问 MDN 并了解更多信息...

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-09
            • 1970-01-01
            • 2021-01-17
            • 1970-01-01
            • 2012-03-15
            相关资源
            最近更新 更多