Javascript 合并数组,第一个数组作为对象键,第二个数组作为其值

Javascript 合并数组,第一个数组作为对象键,第二个数组作为其值,javascript,arrays,object,key,Javascript,Arrays,Object,Key,我使用.concat组合了三个数组 keyArr = ["meat", "veggies", "fish"] dataArr = meatArr.concat(vegArr,fishArr); //value dataArr = [0: "chicken", 1: "pork", 2: "lettuce", 3: "beans", 4: "shark", 5: "nemo"] 我将使用keyArr作为我的“键”,以交换数组的“索引”。我将数据作为对象合并到我的密钥中。还有,把奇数和偶数分开

我使用.concat组合了三个数组

keyArr =  ["meat", "veggies", "fish"]
dataArr = meatArr.concat(vegArr,fishArr);

//value
dataArr = [0: "chicken", 1: "pork", 2: "lettuce", 3: "beans", 4: "shark", 5: "nemo"]
我将使用keyArr作为我的“键”,以交换数组的“索引”。我将数据作为对象合并到我的密钥中。还有,把奇数和偶数分开。预期产出:

[
{meat: "chicken", veggies: "lettuce", fish:"shark", },
{meat:"pork", veggies: "beans", fish: "nemo"}
]

强烈推荐任何关于我将如何处理此问题的建议或方法。谢谢

因为每个数组的项目数相等,所以创建一个数组对象,迭代一个数组,然后使用对象中的键和迭代中的索引将数组映射到一个新的对象数组

不需要
.concat()
数组

var meatArr=[“鸡肉”、“猪肉”],
vegArr=[“莴苣”、“豆类”],
fishArr=[“鲨鱼”、“尼莫”];
var数组={meat:meatArr,vegies:vegArr,fish:fishArr};
var结果=METARR.map((u,i)=>
Object.key(数组)
.reduce((res,key)=>({…res,[key]:数组[key][i]}),{})
);

控制台日志(结果)预期输出无效(复制键)您的预期输出没有意义。对象属性只能有一个值。如何确定预期的输出?最接近的是每个“键”引用一个值数组,如
{meat:[“chicken”,“pork”]、vegies:[…]、fish:[…]}
对不起,我必须编辑输出。我忘了在更改源时将它们分开。@NinaScholz:不,OP将
.concat()
的结果显示为一个新的数组赋值,这有点让人困惑,但很明显是试图显示结果。他们应该把它作为代码注释,比如:
//dataArr现在是:[“鸡肉”、“猪肉”、“莴苣”、“豆类”、“鲨鱼”、“尼莫”]