我正在尝试更改我的数据,使我的对象的每个元素都有自己的键。我认为我的问题相当简单,但我还没有找到解决方法。
我的数据现在的排列方式:
[
{
"country name": "Qatar",
"GDP": "140,649.2",
"country code": "QAT"
},
{
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
"country code": "LUX"
},
...
我希望数据的排列方式:
data: {
'QAT': {
"country name": "Qatar",
"GDP": "140,649.2",
},
'LUX': {
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
},
...
请不要介意不同的键值对。我完全感兴趣的是如何为 {}
括号内的值提供键值,如第二个示例所示。
最佳答案
非循环“国家代码”
键的解决方案:
var arr = [ // exemplary array
{
"country name": "Qatar",
"GDP": "140,649.2",
"country code": "QAT"
},
{
"country name": "MacaoSAR,China",
"GDP": "139,767.3",
"country code": "LUX"
}
], rearranged = {};
arr.forEach(function(obj){
var info = {};
Object.keys(obj).forEach((k) => k === "country code" || (info[k] = obj[k]));
rearranged[obj["country code"]] = info;
});
console.log(JSON.stringify(rearranged, 0, 4));
输出:
{
"QAT": {
"country name": "Qatar",
"GDP": "140,649.2"
},
"LUX": {
"country name": "MacaoSAR,China",
"GDP": "139,767.3"
}
}
关于javascript - 如何为数组中的每个对象提供自己的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36989381/