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

问题描述 投票:0回答:4

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

我该怎么办?

javascript arrays map-function
4个回答
3
投票

这样做:

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

enter image description here


2
投票

在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)

1
投票

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

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

0
投票

一个简单的方法是使用qazxsw poi迭代输入对象的键:

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

© www.soinside.com 2019 - 2024. All rights reserved.