Recibo este error "Error de tipo no detectado: no se pueden leer las propiedades de undefined (leyendo '0')" cuando intento devolver el .Name de mi JSON .
Aquí está mi javascript (el archivo console.log es para probar):
var roomsCodes = [ ['232','DDSB'], ['232','DDMB'], ['232','SJJB'], ['232','SJJS'], ]; var jsonMin = { "DDSB": { "Name": "Doble Estándar", }, "DDMB": { "Name": "Doble con vista mar", }, "SJJB": { "Name": "Jr. Suite", }, "SJJS": { "Name": "Jr. Suite Superior", }, } for(var p = 0; p < roomsCodes.length; p++){ if(232 == roomsCodes[p][0]){ console.log(jsonMin.roomsCodes[p][1].Name); } }Puede solucionarlo usando [] para acceder al objeto, así:
var roomsCodes = [ ["232", "DDSB"], ["232", "DDMB"], ["232", "SJJB"], ["232", "SJJS"] ]; var jsonMin = { DDSB: { Name: "Doble Estándar" }, DDMB: { Name: "Doble con vista mar" }, SJJB: { Name: "Jr. Suite" }, SJJS: { Name: "Jr. Suite Superior" } }; for (var p = 0; p < roomsCodes.length; ++p) { if (232 == roomsCodes[p][0]) { console.log(jsonMin[roomsCodes[p][1]].Name); } }Cuando desee acceder a una propiedad usando una variable dinámica, debe usar corchetes; de lo contrario, puede usar el punto.
var roomsCodes = [ ['232','DDSB'], ['232','DDMB'], ['232','SJJB'], ['232','SJJS'], ]; var jsonMin = { "DDSB": { Name: "Doble Estándar", }, "DDMB": { Name: "Doble con vista mar", }, "SJJB": { Name: "Jr. Suite", }, "SJJS": { Name: "Jr. Suite Superior", }, } for(var p = 0; p < roomsCodes.length; p++){ if(232 == roomsCodes[p][0]){ const item = roomsCodes[p][1] console.log(jsonMin[item].Name) } }