Array.indexOf() return 令人困惑的结果 JavaScript
Array.indexOf() return confusing results JavaScript
所以我试图 return 一个数字,它被赋予一个像 'tue'
这样的字符串,表示星期几。
所以我想我会在包含工作日
的数组中获取字符串 'tue'
的索引
week_days = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
var date = new Date();
var first_month_day = String(new Date(date.getFullYear(), date.getMonth(), 1).toString().slice(0, 4).toLowerCase());
var indexOf = week_days.indexOf(first_month_day)
return indexOf;
first_month_day
= 'tue'
截至今天,当我评估该代码时。
因此我会假设 运行
week_day.indexOf(first_month_day)
会 return 2
但我得到 -1
。所以如果我做
而不是上面的 运行
week_days.indexOf('tue')
我得到了想要的 2
我已经确保 first_month_day 是一个使用 typeof
的字符串,我只是不知道为什么它会保留 return ing -1
每当我知道它存在于数组中时。
正如 Robin Zigmond 所说,.slice(0, 4) 将给出一个长度为 4 的字符串,因此您从 firstMonthDay 得到的是“tue”而不是“tue”。
const weekDays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
const date = new Date();
const firstMonthDay = String(new Date(date.getFullYear(), date.getMonth(), 1).toString().slice(0, 3).toLowerCase());
const index = weekDays.indexOf(firstMonthDay);
console.log(index);
所以我试图 return 一个数字,它被赋予一个像 'tue'
这样的字符串,表示星期几。
所以我想我会在包含工作日
'tue'
的索引
week_days = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
var date = new Date();
var first_month_day = String(new Date(date.getFullYear(), date.getMonth(), 1).toString().slice(0, 4).toLowerCase());
var indexOf = week_days.indexOf(first_month_day)
return indexOf;
first_month_day
= 'tue'
截至今天,当我评估该代码时。
因此我会假设 运行
week_day.indexOf(first_month_day)
会 return 2
但我得到 -1
。所以如果我做
week_days.indexOf('tue')
我得到了想要的 2
我已经确保 first_month_day 是一个使用 typeof
的字符串,我只是不知道为什么它会保留 return ing -1
每当我知道它存在于数组中时。
正如 Robin Zigmond 所说,.slice(0, 4) 将给出一个长度为 4 的字符串,因此您从 firstMonthDay 得到的是“tue”而不是“tue”。
const weekDays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
const date = new Date();
const firstMonthDay = String(new Date(date.getFullYear(), date.getMonth(), 1).toString().slice(0, 3).toLowerCase());
const index = weekDays.indexOf(firstMonthDay);
console.log(index);