如何为对象中的所有键和值添加属性?

How to add properties for all the keys and values in an object?

我有一个 Javascript 对象:

{
    "Central":73322346.47533998,
    "East":87801368.39711998,
    "North":76468694.37534,
    "South":142687496.66816995,
    "West":76815749.40554999
}

我想将此对象映射到如下所示的数组中

[
    {"name" :"Central ,"size" : 73322346.47533998},
    {"name" : "East", "size" : 87801368.39711998},
    {"name": "North","size":76468694.37534},
    {"name": "South","size" :142687496.66816995},
    {"name":"West","size":76815749.40554999}
]

我该怎么办?

这样做:

obj = {"Central":73322346.47533998,"East":87801368.39711998,"North":76468694.37534,"South":142687496.66816995,"West":76815749.40554999}
out = [];
Object.keys(obj).forEach(function(d){ out.push({name: d, size: obj[d]});})
//out will contain your formatted data

您可以遍历对象的 key 以按预期获取对象数组:

var data = {"Central":73322346.47533998,"East":87801368.39711998,"North":76468694.37534,"South":142687496.66816995,"West":76815749.40554999};
var res = [];
Object.keys(data).forEach((key)=>{
  res.push({
    name: key,
    size: data[key]
  });
});
console.log(res);

在 ES2017 中你可以这样做:

Object.entries(obj).map(([name, size])=> ({name, size}))

var obj = {
    "Central":73322346.47533998,
    "East":87801368.39711998,
    "North":76468694.37534,
    "South":142687496.66816995,
    "West":76815749.40554999
}

var res = Object.entries(obj).map(([name, size])=> ({name, size}));

console.log(res);

在 ES2011 (5.1), ES2015 (6),....及以后你可以做:

Object.keys(obj).map(function(k) {
    return {name: k, size: obj[k]}
})

var obj = {
    "Central":73322346.47533998,
    "East":87801368.39711998,
    "North":76468694.37534,
    "South":142687496.66816995,
    "West":76815749.40554999
}

var res = Object.keys(obj).map(function(k) {
    return {name: k, size: obj[k]}
})

console.log(res)

一个简单的方法是使用 for..in loop:

对输入对象的键进行交互

const input = {
    "Central": 73322346.47533998,
    "East": 87801368.39711998,
    "North": 76468694.37534,
    "South": 142687496.66816995,
    "West": 76815749.40554999
};

let output = [];
for (const key in input)
{
    output.push({ "name": key, "size": input[key] });
}

console.log(output);

这可能是实现所需输出的最快方法。