Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用键值对将两个数组组合成一个对象?_Javascript_Arrays_Object - Fatal编程技术网

Javascript 如何使用键值对将两个数组组合成一个对象?

Javascript 如何使用键值对将两个数组组合成一个对象?,javascript,arrays,object,Javascript,Arrays,Object,我有两个数组,数组a包含键,数组b包含它们的值 let a = ['name', 'options', 'address', 'options', 'gender', 'options']; let b = ['john doe', 'a', 'india', 'b', 'male', 'c']; 我想要这样的输出 { 'name': 'john doe', 'options': 'a, b, c', 'address': 'india', 'gender': 'male'

我有两个数组,数组a包含键,数组b包含它们的值

let a = ['name', 'options', 'address', 'options', 'gender', 'options'];
let b = ['john doe', 'a', 'india', 'b', 'male', 'c'];
我想要这样的输出

 { 
  'name': 'john doe',
  'options': 'a, b, c',
  'address': 'india',
  'gender': 'male'
 }
使用

a=['name','options','address','options','gender','options'];
设b=['johndoe','a','india','b','male','c'];
设r=a.reduce((o,c,i)=>{o[c]=o[c]?o[c]+,“+b[i]:b[i];返回o;},{})
控制台日志(r)使用

a=['name','options','address','options','gender','options'];
设b=['johndoe','a','india','b','male','c'];
设r=a.reduce((o,c,i)=>{o[c]=o[c]?o[c]+,“+b[i]:b[i];返回o;},{})

控制台日志(r)另一种方法如下所示。这将循环a.length次,获取a的值并将其作为键添加到c,其中键的值是来自b的值。以下是其工作原理的细分:

对于a中的每个元素:如果c中不存在键名为a[i]的元素,则创建键并将其设置为b[i]中的值。如果元素在c中已经存在(那么键必须表示数组,而不是单个项),如果该值是单个项,则将其设置为数组,并重新插入第一个值,然后在任何情况下,将新项推送到该数组

a=['name','options','address','options','gender','options','options'];
设b=['johndoe','a','india','b','male','c','d'];
设c={};

对于(设i=0;i另一种方法如下所示。该方法循环a.length次,获取a的值并将其作为键添加到c,其中键的值是b的值。下面是其工作原理的细分:

对于a中的每个元素:如果c中不存在键名为a[i]的元素,请创建键并将其设置为b[i]中的值。如果该元素在c中已存在(则该键必须表示数组,而不是单个项),如果该值是单个项,则将其设置为数组,然后重新插入第一个值,然后在任何情况下,将新项推送到该数组

a=['name','options','address','options','gender','options','options'];
设b=['johndoe','a','india','b','male','c','d'];
设c={};
for(设i=0;i
a=['name','options','address','options','gender','options'];
设b=['johndoe','a','india','b','male','c'];
设r=a.reduce((o,c,i)=>{o[c]=o[c]?o[c]+,“+b[i]:b[i];返回o;},[]))
控制台日志(r);
让a=['name','options','address','options','gender','options'];
设b=['johndoe','a','india','b','male','c'];
设r=a.reduce((o,c,i)=>{o[c]=o[c]?o[c]+,“+b[i]:b[i];返回o;},[]))
控制台日志(r);

你打算如何将
a,b,c
映射到选项?似乎你必须手动执行此操作
a
数组包含三个选项,因此仍然是一对一映射。你打算如何将
a,b,c
映射到选项?看起来你必须手动执行此操作
a
数组包含s options trice,因此它仍然是一对一的映射。请解释为什么应该用这种方式解决问题。请解释为什么应该用这种方式解决问题。请不要只发布代码作为答案,而是提供一个解释,说明您的代码做了什么以及它如何解决问题。带有解释的答案通常具有较高的质量请编辑您的答案并提供简要说明,因为StackOverflow会将没有简要说明的答案放在低质量帖子评论队列中,以查看它们是否应该被删除……原因是成千上万的人匆忙地浏览答案,以找到最能解决他们问题的答案如果很多人不得不花大量时间研究答案以确定答案是否是他们真正需要的答案,并且必须阅读问题、逆向工程答案,可能还需要阅读语言文档以确定修复程序解决了什么问题或如何工作,那么这将浪费他们的时间。请不要只发布代码作为答案,而是提供经验说明你的代码是做什么的,以及它是如何解决问题的。带有说明的答案通常质量较高,并且更有可能吸引选票。请编辑你的答案并提供简要说明,因为StackOverflow会将没有简要说明的答案放在低质量帖子评论队列中,以查看它们是否正确应该删除…原因是成千上万的人匆匆浏览答案,寻找最能解决他们问题的答案,如果他们不得不花大量时间研究答案以确定答案是否真的是他们需要的答案,并且必须阅读问题,逆向工程你的答案,可能还要阅读l,这将浪费很多人的时间语言文档,以了解您的修复程序解决了什么问题或它是如何工作的。
  invert(object){ 
    let invertedObject ={};
    for(let key in object){
      const originalValue = object[key];
      invertedObject = {originalValue : key}
    }
    return invertedObject
  }