使用javascript从数组创建对象

使用javascript从数组创建对象,javascript,arrays,object,Javascript,Arrays,Object,我有两个按顺序排列的数组列表,其中包含国家代码和货币,但我需要知道如何组合并形成以下格式的对象 var cn =["AL","DZ","AS","AD","AO","AI","AG","AR","AM","AW","AU"]; var ccy = ["ALL","DZD","USD","EUR","AOA","XCD","XCD","ARS","AMD","AWG","AUD"]; 预期产出: country:[ { "code": "AL", "currency": ["ALL"]

我有两个按顺序排列的数组列表,其中包含国家代码和货币,但我需要知道如何组合并形成以下格式的对象

var cn =["AL","DZ","AS","AD","AO","AI","AG","AR","AM","AW","AU"];
var ccy = ["ALL","DZD","USD","EUR","AOA","XCD","XCD","ARS","AMD","AWG","AUD"];

预期产出:

country:[
{
  "code": "AL",
  "currency": ["ALL"]
},
{
  "code": "DZ",
  "currency": ["DZD"]
}...
...
{
  "code": "AU",
  "currency": ["AUD"]
}
]
您可以使用映射索引从第二个数组中访问相应的值

var cn=[“AL”、“DZ”、“AS”、“AD”、“AO”、“AI”、“AG”、“AR”、“AM”、“AW”、“AU”];
var ccy=[“全部”、“DZD”、“美元”、“欧元”、“AOA”、“XCD”、“XCD”、“ARS”、“AMD”、“AWG”、“AUD”];
让final=cn.map((代码、索引)=>{
货币=ccy[指数]
返回{代码,货币:[货币]}
})

log(final)
您只需要映射两个数组中的一个,并使用当前索引检索另一个数组中的相应值。在每次迭代过程中,返回要创建的对象:

cc.map((code, index) => ({ code: code, currency: ccy[index]}));

一种方法可能是使用带有索引的lambda迭代代码数组,然后在每次迭代中推送每个JSON对象

var cn=[“AL”、“DZ”、“AS”、“AD”、“AO”、“AI”、“AG”、“AR”、“AM”、“AW”、“AU”];
var ccy=[“全部”、“DZD”、“美元”、“欧元”、“AOA”、“XCD”、“XCD”、“ARS”、“AMD”、“AWG”、“AUD”];
var国家=[];
cn.forEach(函数(值,i){
push({代码:值,货币:ccy[i]});
});
控制台日志(国家)
var cn=[“AL”、“DZ”、“AS”、“AD”、“AO”、“AI”、“AG”、“AR”、“AM”、“AW”、“AU”];
var ccy=[“全部”、“DZD”、“美元”、“欧元”、“AOA”、“XCD”、“XCD”、“ARS”、“AMD”、“AWG”、“AUD”];
var国家=[];
for(设i=0;i
可以做这项工作

您可以使用一个简单的方法:

var cn=[“AL”、“DZ”、“AS”、“AD”、“AO”、“AI”、“AG”、“AR”、“AM”、“AW”、“AU”];
var ccy=[“全部”、“DZD”、“美元”、“欧元”、“AOA”、“XCD”、“XCD”、“ARS”、“AMD”、“AWG”、“AUD”];
var result=cn.map((code,idx)=>({code,cn:[ccy[idx]]}));

控制台日志(结果)匹配
代码
货币
的规则在哪里?他们只是在1对1上匹配吗?@zynkn感谢您的回复,是的,他们在1对1上匹配使用方法。到目前为止,你尝试了什么?@Quirimo如果你不同意某人答案中的代码,不要通过编辑来更改代码;相反,写下你自己的答案。@tyler事实上我只是修改了语法,我认为这些修改是建议的,他必须批准。对不起,伙计们back@quirimmo别担心。通常,更好的办法是在注释中建议/解释编辑:)此外,将
let
更改为
const
也不是“语法糖”;这是一个完全不同的说法,尽管这个答案中没有暗示。
var cn =["AL","DZ","AS","AD","AO","AI","AG","AR","AM","AW","AU"];
var ccy = ["ALL","DZD","USD","EUR","AOA","XCD","XCD","ARS","AMD","AWG","AUD"];
var country = [];
for (let i = 0; i < cn.length; i++) {
    country.push({ code: cn[i], currency: ccy[i] });    
}