Javascript:如何从多个数组和变量构造对象?

Javascript:如何从多个数组和变量构造对象?,javascript,arrays,object,Javascript,Arrays,Object,我有两组不同的数组需要合并到一个对象中 x1 = ['US', 'UK', 'China']; y1 = [1,2,3]; name1 = 'CO2'; x2 = ['US', 'UK', 'China']; y2 = [4,5,6]; name2 = 'GHG'; x1和x2总是相同的 我的理想结果 [{'country': 'US', 'CO2': 1, 'GHG': 2}, {'country': 'UK', 'CO2': 2, 'GHG': 5}, {'country': 'Chi

我有两组不同的数组需要合并到一个对象中

x1 = ['US', 'UK', 'China'];
y1 = [1,2,3];
name1 = 'CO2';

x2 = ['US', 'UK', 'China'];
y2 = [4,5,6];
name2 = 'GHG';
x1和x2总是相同的

我的理想结果


[{'country': 'US', 'CO2': 1, 'GHG': 2},
{'country': 'UK', 'CO2': 2, 'GHG': 5},
{'country': 'China', 'CO2': 3, 'GHG': 6}]
我试着构造一个这样的物体

var result = {};

x1.forEach(function (key,i) { result.country = key, result[name1] = y1[i] });
x1.forEach((key, i) => result[key] = y1[i]);
但它只返回最后一个值

{country: "China", CO2: 3}
像这样

var result = {};

x1.forEach(function (key,i) { result.country = key, result[name1] = y1[i] });
x1.forEach((key, i) => result[key] = y1[i]);
但是这个名字就不在戏里了

整个过程应该是动态的,这也会带来额外的问题,我不能像我需要的那样手动设置值。

constx1=[“美国”、“英国”、“中国”];
常数y1=[1,2,3];
常数名称1=‘CO2’;
constx2=[‘美国’、‘英国’、‘中国’];
常数y2=[4,5,6];
常量名称2=‘GHG’;
const result=x1.地图((国家,索引)=>({
国家,,
[名称1]:y1[索引],
[名称2]:y2[索引]
}));
控制台日志(结果)
constx1=[“美国”、“英国”、“中国”];
常数y1=[1,2,3];
常数名称1=‘CO2’;
constx2=[‘美国’、‘英国’、‘中国’];
常数y2=[4,5,6];
常量名称2=‘GHG’;
const result=x1.地图((国家,索引)=>({
国家,,
[名称1]:y1[索引],
[名称2]:y2[索引]
}));

控制台日志(结果)我认为您可以尝试类似的方法,基本上,我们通过x1并使用相应的数据构建结果

var result = {}
for(i = 0; i < x1.length; i++) {
  result[i] = {}
  result[i]["country"] = x1[i]
  result[i][name1] = y1[i]
  result[i][name2] = y2[i]
}

console.log(result)
var result={}
对于(i=0;i
我认为您可以尝试类似的方法,基本上,我们通过x1并使用相应的数据构建结果

var result = {}
for(i = 0; i < x1.length; i++) {
  result[i] = {}
  result[i]["country"] = x1[i]
  result[i][name1] = y1[i]
  result[i][name2] = y2[i]
}

console.log(result)
var result={}
对于(i=0;i
您可以像下面这样做(注意:不需要变量x2)-


在您的代码中,您得到的是最后一个值,因为每次在for-each循环中重写对象的值时,您可以像下面这样做(注意:不需要变量x2)-

在代码中,您得到的是最后一个值,因为每次在for-each循环中,您都会覆盖对象的值

设x1=[“美国”、“英国”、“中国”],y1=[1,2,3],name1=“二氧化碳”,x2=[“美国”、“英国”、“中国”],y2=[4,5,6],name2=“温室气体”;
让结果=x1.map((e,idx)=>({国家:x1[idx],二氧化碳:y1[idx],温室气体:y2[idx]}))
console.log(结果)
设x1=[“美国”、“英国”、“中国”],y1=[1,2,3],name1=“二氧化碳”,x2=[“美国”、“英国”、“中国”],y2=[4,5,6],name2=“温室气体”;
让结果=x1.map((e,idx)=>({国家:x1[idx],二氧化碳:y1[idx],温室气体:y2[idx]}))

console.log(result)
您可以这样做:
让result=x1.map((v,i)=>({“国家”:v[name1]:y1[i],[name2]:y2[i]}))
您确定
中的
温室气体
值不是打字错误吗?
让result=x1.map((v,i)=({“国家”:v,[name1]:y1[i],[name2]:y2[i]}
您确定
{'country':'US','CO2':1',GHG':2}
中的
温室气体的值不是打字错误吗?