Javascript 如何从两个数组中创建json对象
具有两个阵列:Javascript 如何从两个数组中创建json对象,javascript,arrays,json,typescript,Javascript,Arrays,Json,Typescript,具有两个阵列: let value=[“52”、“71”、“3”、“45”、“20”、“12”、“634”、“21”]; 让名称=[“苹果”、“橘子”、“草莓”、“香蕉”、“椰子”、“菠萝”、“西瓜”、“李子”]; 如何创建以下对象: { "apple": 52, "orange": 71, "strawberry": 3, "banana": 45, "cocon
let value=[“52”、“71”、“3”、“45”、“20”、“12”、“634”、“21”];
让名称=[“苹果”、“橘子”、“草莓”、“香蕉”、“椰子”、“菠萝”、“西瓜”、“李子”];
如何创建以下对象:
{
"apple": 52,
"orange": 71,
"strawberry": 3,
"banana": 45,
"coconut": 20,
"pineapple": 12,
"watermelon": 634,
"plum": 21
}
我尝试使用Object.assign
,但这只会覆盖值
对象。分配创建一个新的结果对象。为每个元素的名称添加一个具有名称和相应值的nnew对象
编辑:因为在值数组中,所有元素都是字符串,而在结果对象中,值是整数,所以我使用parseInt进行转换
注意:使用变量name
不太好,因为如果要使用类似于name.forEach,name.map的任何内容,会出现类型错误。这似乎是一个保留字或类似的东西
let value=[“52”、“71”、“3”、“45”、“20”、“12”、“634”、“21”];
让名称=[“苹果”、“橘子”、“草莓”、“香蕉”、“椰子”、“菠萝”、“西瓜”、“李子”];
设temp={};
name.forEach((elem,index)=>{temp[elem]=parseInt(values[index]));
name.forEach((项目,索引)=>{
console.log('item:',item);
console.log('索引:',索引);
log('temp[item]:',temp[item]);
log('values[index]:',values[index]);
临时[项目]=值[索引];
console.log(名称);
});代码>我尝试了此解决方案,但对我无效。我更新了问题,请看一看,让我知道你的想法我编辑了我的解决方案:现在结果中的值是整数而不是字符串。我理解,但还有一件事:当我试图达到结果[elem]时,问题中的temp
编辑是你的结果
结果是它没有定义。我不知道为什么。免责声明:我在这里使用的数组名称只是为了方便起见,在真正的应用程序中,它们的名称不同;)是,因为您使用了temp
,并且没有为其设置任何属性。因此,您必须在输出循环和创建的对象中使用相同的变量。我通过将结果重命名为temp修改了代码,一切正常。查看上面的代码。