将 Javascript 多个数组反应为数组的对象

React Javascript Multiple Arrays to an Object of Arrays

提问人:gilly2chilly 提问时间:9/14/2022 更新时间:9/14/2022 访问量:64

问:

我有一组数组,其中包含多个数据位,我想将它们排列成一个新的数据数组。 这是我所拥有的:

const dateArray = ["9/13/2022", "9/13/2022", "9/13/2022", "9/13/2022","9/13/2022"]
const timeArray = ["00:00", "00:01", "00:02", "00:03", "00:04"]
const integerArray = [1,2,3,4,5]

这就是我想要的:

{
    row0: ["9/13/2022", "00:00", 1],
    row1: ["9/13/2022", "00:01", 2],
    row2: ["9/13/2022", "00:02", 3],
    row3: ["9/13/2022", "00:03", 4],
    row4: ["9/13/2022", "00:04", 5]
}

感谢您提供的任何信息,我尝试过进行地图、缩减和分组,但我还没有完全想回来的东西,而且我正在失去理智来跟踪我尝试过的东西。

JavaScript ReactJS 数组对象 数据操作

评论

0赞 Harshit Pant 9/14/2022
所有三个数组的项数是否相同。如果是这种情况,您可以只在任何数组的长度上创建一个 for 循环。然后插入对象 rowIndex 作为 dateArray[i]、timeArray[i] 和 integerArray[i]

答:

3赞 Majed Badawi 9/14/2022 #1

使用 Array#reduce

const dateArray = ["9/13/2022", "9/13/2022", "9/13/2022", "9/13/2022","9/13/2022"]
const timeArray = ["00:00", "00:01", "00:02", "00:03", "00:04"]
const integerArray = [1,2,3,4,5]

const res = dateArray.reduce((acc, _, i, dates) => ({
  ...acc, [`row${i}`]: [dates[i], timeArray[i], integerArray[i]]
}), {});

console.log(res);

评论

0赞 Chris G 9/14/2022
很酷,但你能解释一下那里发生了什么吗?例如,什么是?_
0赞 Majed Badawi 9/14/2022
@ChrisG文档中链接的参数,第二个参数是我们在解决方案中未使用的当前值。 只是一种常见的做法,告诉这个变量是要忽略的。这回答了你的问题吗?_
1赞 gilly2chilly 9/19/2022
@MajedBadawi,非常感谢您的及时回答和之后的故障,我尝试了很多次reduce尝试,现在看看为什么我的代码失败了,谢谢!