Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用于基于索引动态创建时间的For循环逻辑_Javascript - Fatal编程技术网

Javascript 用于基于索引动态创建时间的For循环逻辑

Javascript 用于基于索引动态创建时间的For循环逻辑,javascript,Javascript,所以我有43个单选按钮。当其中一个被选中时,它将返回它们的索引号。它是零基的,所以是0-42。每个索引对应一个特定的时间。0为上午8:00,42为晚上10:00,每个指数增加20分钟的时间。本质上,我正在尝试生成所需的时间,而不必为每个索引手动创建if语句。这是到目前为止我掌握的坏代码 function decipherIndex(radx) { var actime = ""; var hr = 8; var min = 0; var day = "am";

所以我有43个单选按钮。当其中一个被选中时,它将返回它们的索引号。它是零基的,所以是0-42。每个索引对应一个特定的时间。0为上午8:00,42为晚上10:00,每个指数增加20分钟的时间。本质上,我正在尝试生成所需的时间,而不必为每个索引手动创建if语句。这是到目前为止我掌握的坏代码

function decipherIndex(radx) {
    var actime = "";
    var hr = 8;
    var min = 0;
    var day = "am";
    for (i=0;i<radx;i++) {
        min = min + 20;
        if (min = 60) {
            hr = hr + 1;
            min = 0;
        }
        if (hr = 13) {
            hr = 0;
            day = "pm";
        }
    }
    actime = hr + ":" + min + day;
    alert(actime);
}
函数解密索引(radx){
var actime=“”;
var-hr=8;
var min=0;
var day=“am”;
对于(i=0;i
您正在分配
=
,因此
min
hr
将始终为
0
day
将始终为
“pm”
。使用
=
=
进行比较:

if (min == 60) {
    hr = hr + 1;
    min = 0;
}

if (hr == 13) {
    hr = 0;
    day = "pm";
}

然而,循环不是必需的;您所需要的只是一点数学知识

function decipherIndex(i) {
    var t = 60 * 8 + i * 20;
    var min = t % 60;
    var hr = t / 60 | 0;

    return hr % 12 + ':' + (min < 10 ? '0' : '') + min + (hr >= 12 ? ' PM' : ' AM');
}
函数解密索引(i){
var t=60*8+i*20;
var min=t%60;
var-hr=t/60 | 0;
返回hr%12+':'+(min<10?'0':'')+min+(hr>=12?'PM':'AM');
}

补充信息:
==
是一个无转换的比较。我的比较短了两个字符:PThanks,这就是我所需要的。
function decipherIndex(i) {
    var t = 60 * 8 + i * 20;
    var min = t % 60;
    var hr = t / 60 | 0;

    return hr % 12 + ':' + (min < 10 ? '0' : '') + min + (hr >= 12 ? ' PM' : ' AM');
}