簡體   English   中英

如何為對象中的所有鍵和值添加屬性?

[英]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

在此處輸入圖片說明

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

您可以遍歷對象的key s,以獲取期望的對象數組:

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

一種簡單的方法是使用for..in循環遍歷輸入對象的鍵:

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

這可能是獲得所需輸出的最快方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM