【发布时间】:2021-05-28 07:33:35
【问题描述】:
我正在尝试查看一个值是否包含在 4 个数组之一中。 房间是从前端传递的,并且 getDay() 应该从传递的房间返回当天。除了“星期五”,我似乎无法将这一天设为任何其他值。
我怀疑这是我的“if 语句”
// lets say that room = 2301;
function getDay(room) {
var day = '';
var a = [2301, 2302, 2303, 2304, 2305, 2307, 2306, 2307, 2308, 2309, 201, 202, 123, 204, 205, 206, 124,
301, 302, 303, 304, 305, 306, 401, 402, 403, 404, 405, 406, 407, 501, 502, 503, 504, 505, 506
];
var b = [2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 208, 209, 210, 211, 101, 102, 103,
307, 308, 309, 310, 311, 312, 408, 409, 410, 411, 412, 413, 414, 507, 508, 509, 510, 511, 512,
611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 707, 708, 709, 710, 711, 712,
811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 908, 909, 919, 911, 912, 913, 914,
1914,
];
var c = [1915, 1916, 1917, 1918, 1919, 1920, 1921, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130,
2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724
]
var d = [2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 111, 112, 113, 114, 115, 116, 117,
319, 320, 321, 322, 323, 324, 422, 423, 424, 425, 426, 427, 428, 519, 520, 521, 522, 523, 524
];
if (a.includes(room)) {
console.log(day);
return day = 'Monday';
} else if (b.includes(room)) {
console.log(day);
return day = 'Tuesday';
} else if (c.includes(room)) {
console.log(day);
return day = 'Wednesday';
} else if (d.includes(room)) {
console.log(day);
return day = 'Thursday';
} else {
console.log(day);
return day = 'Friday'
}
}
console.log("Number 2301", getDay(2301));
console.log("String '2301'", getDay("2301"));
但是当我执行代码时,它会将日期返回为“星期五”,即使房间号在数组 a 中。
【问题讨论】:
-
在分配
day = 'Monday'之前,你正在做console.log(day) -
它似乎在 sn-p 中工作。
-
您确定在现实生活中您将
room作为数字而不是字符串传递吗?可以肯定的是,将这一行作为函数的第一条语句添加:room = +room;。 -
是的,房间是作为字符串而不是数字传递的。我设法纠正了这个问题,它现在正在工作
标签: javascript node.js arrays if-statement switch-statement