gpt4 book ai didi

javascript - 如何将一个数组的第一个元素与第二个数组的第一个元素等组合起来

转载 作者:行者123 更新时间:2023-12-01 15:52:05 26 4
gpt4 key购买 nike

我有两个数组。

第一个数组包含日期

['2020-03-17,2020-03-19,2020-03-18,2020-03-12']

第二个数组包含时间,该数组由两个小时的时间段组成。
['11:00', '13:00','15:00', '17:00','19:00', '21:00', '23:00']

最后,我需要结果如下所示:
['2020-03-17,11:00,13:00','2020-03-19,15:00,17:00','2020-03-18,19:00,21:00']

最佳答案

配对数组

如果两个数组都是有序的,并且每对时间都与一个日期相关联,则可以将日期索引乘以2得到第一次,然后加1得到结束时间。

let dates = ['2020-03-17', '2020-03-19', '2020-03-18', '2020-03-12']
let times = ['11:00', '13:00', '15:00', '17:00', '19:00', '21:00', '23:00']

let dateTime = [];

for (let i in dates) {

let timeIndex = i * 2;
let startTime = times[timeIndex]
let endTime = times[timeIndex + 1]

if (endTime)
dateTime.push( [dates[i], startTime, endTime].join(',') )
}

console.log(dateTime)



笔记

OP 中的数据存在需要解决或纠正的缺陷:
  • 日期数组是一个字符串。这个答案通过使每个日期成为一个单独的元素来纠正这一点。如果不是这种情况,只需提取数据并在逗号上拆分(即 dates.pop().split(',') )
  • 描述是每个日期都有一对时间,但是否总是如此则值得怀疑。最后一个日期表示它只有一个相关的时间。 (见更新)
  • 如果时序对经常出现,请考虑 Jack 的回答中提供的更实用的方法:https://stackoverflow.com/a/60756349/10408280

  • 更新
  • 评论显示,如果最后一个日期没有两次,则将其排除在结果之外。此答案已更新以适应该说明;然而,这留下了一个关于数据质量的问题。

    What happens if times are missing for internal dates?

  • 关于javascript - 如何将一个数组的第一个元素与第二个数组的第一个元素等组合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60755915/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com