No se puede acceder a los pares de valores clave en el objeto js. Estoy tratando de acceder al día actual desde dayName pero no puedo hacerlo. Se muestra undefined cuando intento acceder a dayName a través de la tecla dayNum .
JS
app.get("/", (req, res) => { let dayName = { "1" : "Monday", "2" : "Tuesday", "3" : "Wednesday", "4" : "Thursday", "5" : "Friday", "6" : "Saturday", "0" : "Sunday" } let today = new Date(); let dayNum = today.getDay().toString(); console.log(dayName.dayNum); res.render("list", { day : dayName.dayNum }); });EJS
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>To Do List</title> </head> <body> <h1>Today is <%= day %></h1> </body> </html>PRODUCCIÓN:


Debe utilizar la notación de corchetes. Con la notación de puntos dayName.dayNum estamos buscando el valor con la clave "dayNum" dentro del objeto y como no tiene tal clave, devuelve undefined . Si usamos la notación de paréntesis, dayNum se evaluará con la clave correcta antes del acceso al objeto. Ver Notación de puntos vs. Notación de corchetes
res.render("list", { day : dayName[dayNum] }); También recomendaría usar una matriz en lugar de un objeto para dayName
const dayName = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];app.get("/", (req, res) => { let dayName = { "1" : "Monday", "2" : "Tuesday", "3" : "Wednesday", "4" : "Thursday", "5" : "Friday", "6" : "Saturday", "0" : "Sunday" } let today = new Date(); let dayNum = today.getDay().toString(); console.log(dayName.dayNum); res.render("list", { day : dayName.dayNum }); });