为什么10小于9?

时间:2016-10-26 23:03:47

标签: javascript

我有一个函数switcher(),它有一个Object参数video。如果'Start',它应该记录video.start <= video.ende。它在大多数情况下都能正常工作(例如:video.start = 1video.ende = 3),但当video.start = 9video.ende = 10记录'End'时。

function switcher(video)   
{
    console.log("Start: " + video.start);
    console.log("End: " + video.ende);

    if(video.start <= video.ende) // Not working correctly
    {
        console.log("Start");
    }
    else
    {
        console.log("End");
    }
}

console.log()成功:

console.log: addon: Start: 1
console.log: addon: End: 3
console.log: addon: Start

console.log()失败:

console.log: addon: Start: 9
console.log: addon: End: 10
console.log: addon: End

为什么会这样?
我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

听起来video.startvideo.ende是字符串,而不是数字,所以它们按字典顺序进行比较,而不是数字进行比较。在比较之前将它们转换为数字。

if (Number(video.start) <= Number(video.ende))

或者您可以修复创建video对象的代码,以便在此时将其转换为数字。