如何将数组内的对象转换为特定格式

时间:2019-11-21 04:25:23

标签: javascript arrays json ecmascript-6 mapping

我有一个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 
    }
];

我该怎么做?

5 个答案:

答案 0 :(得分:2)

假设您要将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()将会对您有所帮助。

答案 1 :(得分:0)

它将为您提供帮助--------

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

答案 2 :(得分:0)

说您的结果数组是:

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

应该可以

答案 3 :(得分:0)

您可以尝试一下。

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)

答案 4 :(得分:0)

尝试一下:

解决方案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);