【问题标题】:How to convert the objects inside an array into a specific format如何将数组中的对象转换为特定格式
【发布时间】:2020-03-16 22:26:52
【问题描述】:

我有一个格式如下的 API:

[
   {
      "id": 4,
      "code": "IN",
      "name": "India",
      "recordVersion": "6CB5C760-E145-4FFA-AC63-FAF5F36B6C80",
      "updatedBy": "Sini "
   },
   {
      "id": 59,
      "code": "UK",
      "name": "United Kingdom",
      "recordVersion": "3512B084-8DB7-48F6-9E01-C0861E2A128D",
      "updatedBy": "sinju "
   }
]

我需要把它转换成这种格式:

localizedData = [ 
    { 
        text: "India", 
        value: 4 
    }, 
    { 
        text: "United Kingdom", 
        value: 59 
    }
];

我该怎么做?

【问题讨论】:

    标签: javascript arrays json ecmascript-6 mapping


    【解决方案1】:

    假设您要将name 属性映射到text,并将id 属性映射到value。

    const source = [
      {
        "id": 4,
        "code": "IN",
        "name": "India",
        "recordVersion": "6CB5C760-E145-4FFA-AC63-FAF5F36B6C80",
        "updatedBy": "Sini "
      },
      {
        "id": 59,
        "code": "UK",
        "name": "United Kingdom",
        "recordVersion": "3512B084-8DB7-48F6-9E01-C0861E2A128D",
        "updatedBy": "sinju "
      }
    ];
    
    const localizedData = source.map(item => ({text: item.name, value: item.id}));
    
    console.log(localizedData )

    了解Array.prototype.map() 对您下次有帮助。

    【讨论】:

      【解决方案2】:

      它会帮助你-----

                   var results = data;
                     var arr = [], item;
                       for (var i = 0, len = results.length; i < len; i++) {
                            item = results[i];
                            arr.push({username: item.username, description: item.description, 
                               name: 
                              item.name});
                                     }
      

      【讨论】:

        【解决方案3】:

        假设你的结果数组是:

        const res =  { "id": 4, "code": "IN", "name": "India", "recordVersion": "6CB5C760-E145-4FFA-AC63-FAF5F36B6C80", "updatedBy": "Sini " }, { "id": 59, "code": "UK", "name": "United Kingdom", "recordVersion": "3512B084-8DB7-48F6-9E01-C0861E2A128D", "updatedBy": "sinju " } }
        

        您需要做的就是:

        const res2 = res.map(a => ({text: a.name, value: a.id}));
        

        应该可以的

        【讨论】:

        • 小语法问题:res.map(a =&gt; ({text: a.name, value: a.id}) 否则将映射到未定义。
        【解决方案4】:

        你可以试试这个。

        const data = [
          {
            "id": 4,
            "code": "IN",
            "name": "India",
            "recordVersion": "6CB5C760-E145-4FFA-AC63-FAF5F36B6C80",
            "updatedBy": "Sini "
          },
          {
            "id": 59,
            "code": "UK",
            "name": "United Kingdom",
            "recordVersion": "3512B084-8DB7-48F6-9E01-C0861E2A128D",
            "updatedBy": "sinju "
          }
        ];
        
        const localizedData = [];
        
        for(i=0;i< data.length;i++){
        localizedData.push({text : data[i].name, value : data[i].id})
        }
        
        console.log(localizedData)

        【讨论】:

          【解决方案5】:

          试试这个:

          解决方案 1:

          var jsonObj = [
             {
                "id": 4,
                "code": "IN",
                "name": "India",
                "recordVersion": "6CB5C760-E145-4FFA-AC63-FAF5F36B6C80",
                "updatedBy": "Sini "
             },
             {
                "id": 59,
                "code": "UK",
                "name": "United Kingdom",
                "recordVersion": "3512B084-8DB7-48F6-9E01-C0861E2A128D",
                "updatedBy": "sinju "
             }
          ];
          
          jsonObj.map((obj) => {
          	obj["value"] = obj["id"];
            obj["text"] = obj["name"];
            delete obj.id;
            delete obj.code;
            delete obj.name;
            delete obj.recordVersion;
            delete obj.updatedBy;
          });
          
          console.log(jsonObj);

          解决方案 2:

          const jsonObj = [
            {
              "id": 4,
              "code": "IN",
              "name": "India",
              "recordVersion": "6CB5C760-E145-4FFA-AC63-FAF5F36B6C80",
              "updatedBy": "Sini "
            },
            {
              "id": 59,
              "code": "UK",
              "name": "United Kingdom",
              "recordVersion": "3512B084-8DB7-48F6-9E01-C0861E2A128D",
              "updatedBy": "sinju "
            }
          ];
          
          const res = [];
          
          for (var i of jsonObj) {
            res.push({value : i.id, text : i.name});
          }
          
          console.log(res);

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-10-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-02-01
            相关资源
            最近更新 更多