gpt4 book ai didi

javascript - 如何使用 Javascript 找到到达循环传送带中某个项目的最短路径?

转载 作者:行者123 更新时间:2023-11-28 04:06:43 25 4
gpt4 key购买 nike

假设我有一个包含 5 张幻灯片的循环轮播。如何使用 javascript 确定从当前幻灯片到新幻灯片的哪种方式(向前或向后)需要更少的步骤?

即当前在幻灯片 3 上,并且想要转到幻灯片 0。在这种情况下,前进的步骤会比后退的步骤少。

(0), 1, 2, [3], 4, (0), 1, 2, 等等.

我想出了这个,但看起来很老套。我错过了一个概念吗?

const targetSlide = 0;
const currentSlide = 3;
const itemCount = 5;
let forwardRange;
let backwardsRange;
if(currentSlide != targetSlide){
for(let i = 0; i < itemCount; i++){
let j = currentSlide + i;
if(j >= itemCount){
j = j - itemCount;
}
if(j == targetSlide){
forwardRange = i;
backwardsRange = itemCount - i;
}
}
if(forwardRange - backwardsRange <= 0){
console.log('go forward')
}else{
console.log('go backward')
}
}

最佳答案

您可以计算前进或后退的成本,并用它来确定方向。

const targetSlide = 0;
const currentSlide = 3;
const itemCount = 5;

const forwardsCost = currentSlide < targetSlide
? targetSlide - currentSlide
: itemCount - currentSlide + targetSlide;

const backwardsCost = currentSlide > targetSlide
? currentSlide - targetSlide
: currentSlide + itemCount - targetSlide;

关于javascript - 如何使用 Javascript 找到到达循环传送带中某个项目的最短路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46630871/

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