我有一个函数switcher()
,它有一个Object参数video
。如果'Start'
,它应该记录video.start <= video.ende
。它在大多数情况下都能正常工作(例如:video.start = 1
和video.ende = 3
),但当video.start = 9
和video.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
为什么会这样?
我该如何解决这个问题?
答案 0 :(得分:3)
听起来video.start
和video.ende
是字符串,而不是数字,所以它们按字典顺序进行比较,而不是数字进行比较。在比较之前将它们转换为数字。
if (Number(video.start) <= Number(video.ende))
或者您可以修复创建video
对象的代码,以便在此时将其转换为数字。