如何检查一个值是否在数组中
How to check if a value is in the array
我正在尝试查看 4 个数组之一中是否包含一个值。
房间从前端传递过来,并且 getDay() 假设为 return 从房间传递的那一天。除了 'Friday'.
之外,我似乎无法让这一天成为任何其他值
我怀疑是我的 'if statement'
// 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"));
但是当我执行代码时 return 天是 'Friday',即使房间号在数组 a 中也是如此。
该函数只有在 room
是数字而非字符串时才能正常工作,因为 includes()
执行严格的相等性检查。解析为函数开头的数字:
room = ParseInt(room);
我正在尝试查看 4 个数组之一中是否包含一个值。 房间从前端传递过来,并且 getDay() 假设为 return 从房间传递的那一天。除了 'Friday'.
之外,我似乎无法让这一天成为任何其他值我怀疑是我的 'if statement'
// 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"));
但是当我执行代码时 return 天是 'Friday',即使房间号在数组 a 中也是如此。
该函数只有在 room
是数字而非字符串时才能正常工作,因为 includes()
执行严格的相等性检查。解析为函数开头的数字:
room = ParseInt(room);