2017-06-05 54 views
0

对不起,如果这个问题感觉多余,但我没有t been able to find the answer with this method. It doesn在所提供的链接上得到答案。 我一直在试图做一个Javascript程序,检查用户的输入是否是一周或一周。它必须用循环完成或做。检查用户输入一周或周末的日期,使用for循环

我希望我的程序检查用户输入是否在数组中,如果是,程序应该能够判断它是工作日还是周末。

我的问题:它总是返回工作日,即使我把周六或周日。

这被标记为Javascript,但适用于任何语言,因为它是基本的东西。

Here`s到目前为止我的代码

var input = prompt("Enter a day of the week"); 
var day = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"]; 

for (var i = 0; i <= day.length; i++) 
{ 
    if(input >= day[5]){ 
     console.log("It´s weekend!"); {break;} 
    }else 
    { 
     console.log("It´s a working day"); 

    } 
} 
+0

的可能的复制[如何找到一个值数组索引?](https://stackoverflow.com/questions/7346827/how-to-find-the-array-index-with-a-价值) –

+1

你的意见是什么?它是一个数字还是一个全文(例如星期一) – codekaizer

+0

我的输入总是一天,例如“星期六”“星期日”“星期一”等,它总是返回工作日,即使有数字。 –

回答

1

我不认为你必须使用一个for循环。下面的代码应该可以工作:

var input = prompt("Enter a day of the week"); 
var workingday = ["monday", "tuesday", "Wensday", "thursday", "friday"]; 
var weekend = ["saturday", "sunday"] 

if (workingday.indexOf(input) != -1) { 
    console.log("It´s a working day!"); 
} else if (weekend.indexOf(input) != -1) { 
    console.log("It´s weekend!"); 
} else { 
    console.log("Invalid input!"); 
} 

顺便说一句,你拼错了“Wensday”。 要使用for循环:

for (var i = 0; i < day.length; i++) { 
    if (day[i] == input) { 
     console.log((i >= 5) ? "It's weekend!" : "It's a working day"); 
    } 
} 
+0

完美工作,谢谢 –

1

你输入一个字符串,你的日子是一个数组,所以你不能在你的if语句做一个大于比较。

相反,您需要找到输入匹配的日期的哪个索引(数字)。已经有一个名为indexOf()的数组方法查找数组中某个项目的索引。然后,您可以查看该日数是否大于或等于周末的日期。

var dayNumber = days.indexOf(input); 
if (dayNumber >= 5) { 
    // it's the weekend 
} 

但是,如果你必须使用一个for循环,你可以模拟一下indexOf()一样。它的工作原理是每个循环增加一个数字dayNumber,然后使用该数字索引days数组。然后,您可以将该索引处的值与您的input进行比较。如果它匹配,你就知道它是什么日期,并且可以看到它是否大于或等于周末的日子。

for (var dayNumber = 0; dayNumber < days.length; dayNumber++) { 
    // check if the input matches the current index of the array 
    if (input == days[dayNumber]) { 
    // if it does, check if the day number is on the weekend 
    if (dayNumber >= 5) { 
     // it's the weekend 
    } 
    } 
} 

这可以用一个“与运算符” &&两个嵌套的if语句结合更加紧凑。

if (input == days[dayNumber] && dayNumber >= 5) { 
    // it's the weekend 
}