我有两个长度相同的数据数组,并且索引相关。
var a = [ "Paris", "London", "Boston"];
var b = [ 70,60,50];
我想要获得以下对象:
[{
"city":"Paris",
"temperature":70
},{
"city":"London",
"temperature":60
},{
"city":"Boston",
"temperature":50
}]
如何使用javascript实现此目的?
答案 0 :(得分:4)
您可以为此使用“ Array.map”
var a = [ "Paris", "London", "Boston"];
var b = [ 70,60,50];
let result = a.map((city, i) => ({ city, temperature: b[i] }))
console.log(result)
答案 1 :(得分:2)
要获得预期的结果,请使用下面的选项(假设两个数组的长度相同)
var a = [ "Paris", "London", "Boston"];
var b = [ 70,60,50];
var result = [];
a.forEach((v, i) =>{
result.push({city: v, temperature: b[i]})
})
console.log(result)
答案 2 :(得分:0)
此解决方案通过避免使用硬编码属性来使用其他方法。
您可以通过迭代对象的条目来获取对象并构建对象数组。这种方法适用于任意数量的属性。
var city = ["Paris", "London", "Boston"],
temperature = [70, 60, 50],
data = { city, temperature },
result = Object
.entries(data)
.reduce((r, [k, a]) => a.map((v, i) => Object.assign(r[i] || {}, { [k]: v })), []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }