Entonces, estoy tratando de devolver un número para qué día de la semana se le da una cadena como 'tue' . Entonces pensé que obtendría el índice de la cadena 'tue' en una matriz que contiene los días de la semana
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' a partir de hoy cuando evalúo ese código. por lo tanto, asumiría que correr
week_day.indexOf(first_month_day) devolvería 2 pero en su lugar obtengo -1 . Entonces, si en lugar de ejecutar lo anterior, si lo hago
week_days.indexOf('tue') Obtuve los 2 deseados. Me aseguré de que first_month_day es una cadena que usa typeof y todo lo que no sé es por qué sigue devolviendo -1 cada vez que sé que existe dentro de la matriz.
Como dijo Robin Zigmond, .slice(0, 4) dará una cadena con una longitud de 4, por lo que obtendría "tue" de firstMonthDay en lugar de "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);