如何修复对象自动重新排序最小到最大in(in)循环

时间:2013-09-12 08:29:43

标签: javascript for-loop for-in-loop

我的最终功能。

var timeToString = function(time)
{
    if (time <= 0)
    {
        return '0';
    }
    else
    {
        var s = '';
        var d;

        var dateObj = { '_86400' : 'วัน', '_3600' : 'ชั่วโมง', '_60' : 'นาที', '_1' : 'วินาที' };

        for ( key in dateObj )
        {
            console.log( time + ' ' + key )

            var suffix = dateObj[key];
            var totaltime = key;
            totaltime = totaltime.substr(1)

            if ( time >= totaltime )
            {
                time -= d = time - time % totaltime;
                s += ( ( d / totaltime) + ' ' + suffix + ' ');
            }
        }
    }
    return s;
}

document.write( timeToString(79) )

结果:1 นาที 19 วินาที

通过在我的对象的键值中添加前缀来修复它,我的修复效果很好。

这是我的第一个代码

var timeToString = function(time)
{
    if (time <= 0)
    {
        return '0';
    }
    else
    {
        var s = '';
        var d;

        var dateObj = { '86400' : 'วัน', '3600' : 'ชั่วโมง', '60' : 'นาที', '1' : 'วินาที' };

        for ( key in dateObj )
        {
            var suffix = dateObj[key];
            var totaltime = parseInt(key);

            if ( time >= totaltime )
            {
                time -= d = time - time % totaltime;
                s += ( ( d / totaltime) + ' ' + suffix + ' ');
            }
        }
    }
    return s;
}

结果:79 วินาที

我不需要那样显示。

结果:1 นาที 19 วินาที

没错。

在两个函数之间看一下“dateObj”的区别。

如果key == number

的类型,如何在for循环中修复对象重新排序

2 个答案:

答案 0 :(得分:0)

据我所知,你需要格式化分钟。 试试这个例子:

function formatTime(minutes) {
        var hh = Math.floor(minutes/60);
        var mm = minutes%60;
        var result = "";
        if (hh > 0)
            result += hh + " hours ";
        if (mm > 0)
            result += mm + " minutes";
        return result;
    }

然后致电:

console.log(formatTime(219));
// 3 hours 39 minutes

答案 1 :(得分:0)

在我看来问题实际上是在行

 totaltime = totaltime.substr(1)

你改为

var totaltime = parseInt(key);

我不知道你想在这里比较什么,打赌它似乎与你完全不同。确保你想要比较什么以及如何做。什么time和谁发送它?你想如何将整数与字符串进行比较?等等