gpt4 book ai didi

javascript - 我的功能有一个我似乎无法解决的问题。目前,它说无法在连接槽处读取undefined的 'split'属性

转载 作者:行者123 更新时间:2023-12-03 07:52:23 27 4
gpt4 key购买 nike

我正在使用的功能是

function joinslots(freeTimings){
joined=[];
if(freeTimings.length==1){
joined.push(freeTimings);
}
if(freeTimings.length>1){
for(i=0;i<=freeTimings.length;){
//console.log(freeTimings[i]);
time0=freeTimings[i].split("-");
first0=time0[0];
last0=time0[1];
time1=freeTimings[i+1].split("-");
first1=time1[0];
last1=time1[1];
if(last0==first1){
newfirst=first0;
newlast=last1;
newtime = newfirst+"-"+newlast;
joined.push(newtime);
if(i+2<freeTimings.length){
time2=freeTimings[i+2]
first2=time2[0];
last2=time2[1];
if(first2==last1){
i=i+2;
}
else i++;
}
else i+=2;
}
else{
joined.push(freeTimings[i]);
i++;
}
if(i==freeTimings.length-1){
joined.push(freeTimings[i-1]);
break;
}

}

}
return joined;



}

此功能的输入是30分钟的时间段,并且应该尽可能返回一个小时的加入时间段。
每次我修复错误时,都会引发另一个错误,这使我认为这里存在一个我无法弄清的潜在问题,除了可能我一直保留if语句的数组超出范围之外。

例如,输入为
freeTimings=["8:00-8:30","8:30-9:00","9:00-9:30","12:00-12:30","12:30-13:00","13:00-13:30","13:30-14:00","14-14:30","15:30-16:00","16:00-16:30","17:30-18:00"]

返回值必须是
joined=["8:00-9:00","9:00-9:30","12:00-13:00","13:00-14:00","14:00-14:30","15:30-16:30","17:30-18:00"]

因此,在修复我的功能方面的任何帮助将不胜感激:)

最佳答案

编写方法slotMerge来检查两个时间字符串是否可以合并。如果可以合并,则返回合并的插槽,否则返回空字符串。

使用此方法,可以遍历阵列并将合并或未合并的插槽 push 输出阵列。

这有什么帮助。

const freeTimings = [
"8:00-8:30",
"8:30-9:00",
"9:00-9:30",
"12:00-12:30",
"12:30-13:00",
"13:00-13:30",
"13:30-14:00",
"14-14:30",
"15:30-16:00",
"16:00-16:30",
"17:30-18:00"
];

const joinSlots = data => {
const slotMerge = (str1, str2) => {
const [start1, end1] = str1.split("-");
const [start2, end2] = str2.split("-");
return end1 === start2 ? `${start1}-${end2}` : "";
};
const output = [];
let prev = data[0];
for (let i = 1; i < data.length; i++) {
const curr = data[i];
const mer = slotMerge(prev, curr);
if (mer) {
output.push(mer);
prev = i + 1 < data.length ? data[i + 1] : undefined;
i += 1;
} else {
output.push(prev);
prev = curr;
}
}
if (prev) {
output.push(prev);
}
return output;
};

console.log(joinSlots(freeTimings));

关于javascript - 我的功能有一个我似乎无法解决的问题。目前,它说无法在连接槽处读取undefined的 'split'属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61695598/

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