【发布时间】:2016-03-17 18:02:08
【问题描述】:
我正在尝试创建一个循环遍历数组并返回结果的函数。我试图将此函数传递给另一个函数,该函数使用 switch 语句来检查从传入函数返回的值的日期,以将周日、周三等星期几显示到控制台。数组中的所有三个值都是字符串,其中两个是日期值,另一个不是。
我显然遗漏了一些东西,因为 myDate 函数只返回一个值,即数组中的第一个值,而且当它传递给 findDate 函数时,它也不会返回预期的结果。
var myDate = function() {
var input = ['10/11/2009', '11/10/2010', '-1'];
for (var i = 0; i < input.length; i++) {
var result = input[i];
console.log(result);
return result;
}
};
console.log(myDate());
function findDay(myDate) {
if (myDate !== -1) {
var date = new Date(myDate), day = "";
switch (date.toDateString().slice(0,3)) { //Pick the first 3 characters of a date string
case "Sun":
day = "Sunday";
break;
case "Mon":
day = "Monday";
break;
case "Tue":
day = "Tuesday";
break;
case "Wed":
day = "Wednesday";
break;
case "Thu":
day = "Thursday";
break;
case "Fri":
day = "Friday";
break;
default:
day = "Saturday";
break;
}
console.log(day);
}
else{
console.log(myDate + ' is not a valid date'); //If input is -1
}
}
findDay(myDate);
示例输入
10/11/2009
11/10/2010
-1
样本输出
Sunday
Wednesday
-1 is not a valid date
【问题讨论】:
-
考虑到您发布的代码,
myDate()应该返回什么? -
您的
return在循环内。将始终在第 1 次迭代期间返回。 -
@leo.fcx myDate() 应该在数组中返回样本输入,所以当我将它传递给 findDate() 时,它会通过 switch 语句检查每个值
-
没有意义,如果返回相同的数组,为什么要迭代?
-
@leo.fcx 一个函数的目的是保存数组中的值并返回这些值以用于另一个确定星期几的函数。如果您有任何解决方案,请随时提出建议,即使它不完全符合此标准
标签: javascript arrays function date switch-statement