【问题标题】:convert object to array of objects将对象转换为对象数组
【发布时间】:2011-07-05 16:58:41
【问题描述】:

我从 WCF 调用返回了以下 javascript 对象,该对象已从字典对象序列化,该对象删除了键/值属性

Object { 7="XXX", 9="YYY" }

我想将此 javascript 转换为以下数组,结果为

[Object { Key=7, Value="XXX"}, Object { Key=9, Value="YYY"}]

我正在使用 jquery 客户端库。

有人知道如何将对象转换为具有键/值属性的对象数组吗?

【问题讨论】:

    标签: c# javascript jquery arrays serialization


    【解决方案1】:

    这是一个可重用的函数,可以解决您的问题:

    var bad = {
      7: "XXX",
      9: "YYY"
    };
    
    function fix(input) {
      var output = [];
    
      for (var index in input) {
        output.push({
          "KEY": index,
          "VALUE": input[index]
        });
      }
    
      return output;
    }
    
    // [Object { Key=7, Value="XXX"}, Object { Key=9, Value="YYY"}]
    var good = fix(bad);
    
    console.log(good)

    【讨论】:

      【解决方案2】:

      你可以这样做:

      var output = [];
      
      for (var key in result) {
        output.push({ Key: key, Value: result[key] });
      }
      

      result 是您的 WCF 结果。请记住,javascript 对象本质上是映射,所以我可以在哪里做obj.Name,我也可以做obj["Name"],并且我可以枚举映射中的成员,例如:for (var prop in obj) { // Stuff

      【讨论】:

        【解决方案3】:
        a = { "7": "XXX", "9": "YYY" }
        
        var array = [];
        
        for(var key in a){ array.push({key: key, value: a[key]}) }
        

        【讨论】:

          【解决方案4】:

          使用 Javascript,您可以获取对象的条目并映射键/值对。

          var object = { 7: "XXX", 9: "YYY" },
              array = Object
                  .entries(object)
                  .map(([key, value]) => ({ [key]: value }));
                  
          console.log(array);

          【讨论】:

            猜你喜欢
            • 2020-06-15
            • 2016-03-11
            • 2019-07-11
            • 1970-01-01
            • 2021-05-03
            相关资源
            最近更新 更多