我是javascript新手。我有以下格式的数据数组:
Toronto, Ontario: 95
Markham, Ontario: 71
我想将其转换为对象数组:
我尝试过:
reportData.fbcity = Object.keys(reportData.city).map((city) => {
return {
city: city,
value: reportData.city[city]
};
});
我得到的是: {city:“安大略省万锦市”:“值”:71}
答案 0 :(得分:1)
根据您更新的问题,我认为您有这个问题:
const start = ["Toronto, Ontario: 95", "Markham, Ontario: 71"];
,您想要这个:
result = [
{"Toronto, Ontario": 95},
{"Markham, Ontario": 71}
];
为此,您需要将字符串末尾的数字分开,然后使用字符串的两部分来构建对象。如果您知道只有一个:
,那么:
const result = start.map(str => {
const [city, number] = str.split(":");
return {
[city]: +number
};
});
实时示例:
const start = ["Toronto, Ontario: 95", "Markham, Ontario: 71"];
const result = start.map(str => {
const [city, number] = str.split(":");
return {
[city]: +number
};
});
console.log(result);
使用解构从split
捕获两个部分,然后使用计算的属性名称创建具有城市名称的属性,并使用+
强制数字从字符串转换为数字。 (这只是您的数字转字符串选项之一,有关更多选项,请参见this answer。)
答案 1 :(得分:0)
reportData.fbcity = Object.keys(reportData.city).map((city) => {
return {
[city]: reportData.city[city]
};
})
答案 2 :(得分:0)
您可以使用user_source
和map
split
分割,然后构建一个对象:
用于将字符串转换为数字
+