You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对动态生成的字符串slice进行限定范围的比较?

解决方案

首先,我们需要先把每个时间字符串里**需要比较的核心部分(星期+日期+开始时间)**提取出来,再进行对比——毕竟结束时间可能变化,我们只关心到「8:00AM」这部分的内容是否一致。

步骤1:写一个提取核心对比部分的辅助函数

这个函数会把每个时间字符串拆分,取出前三个关键部分(星期、日期、开始时间)并重新拼接:

function extractCompareKey(timeStr) {
    // 按空格拆分字符串,取前三个部分(星期, 日期, 开始时间)
    const keyParts = timeStr.split(' ').slice(0, 3);
    // 重新拼接成用于对比的字符串
    return keyParts.join(' ');
}

步骤2:遍历两个数组,用提取后的关键字对比

你可以用原生JS循环,或者jQuery的$.each来遍历,这里给出两种写法:

原生JS循环版本

for (let i = 0; i < slice1.length; i++) {
    const slice1Key = extractCompareKey(slice1[i]);
    for (let j = 0; j < slice2.length; j++) {
        const slice2Key = extractCompareKey(slice2[j]);
        if (slice1Key === slice2Key) {
            console.log("匹配到的记录:", slice2[j]);
            // 如果找到匹配后不需要继续对比当前元素,可以加break;
        }
    }
}

jQuery遍历版本

如果你习惯用jQuery的方法,可以这样写:

$.each(slice1, function(index1, item1) {
    const key1 = extractCompareKey(item1);
    $.each(slice2, function(index2, item2) {
        const key2 = extractCompareKey(item2);
        if (key1 === key2) {
            console.log("匹配到的记录:", item2);
        }
    });
});

为什么这样可行?

比如对于slice1里的"Monday, 06-04-2018 8:00AM 11:00AM",提取后得到"Monday, 06-04-2018 8:00AM";slice2里的"Monday, 06-04-2018 8:00AM 10:00AM"提取后也是同样的字符串,这样就能正确匹配到,完全不受结束时间变化的影响。

内容的提问来源于stack exchange,提问作者gourav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:40:17