Mi ciclo verifica si una matriz de tarjetas tiene un atributo especial, si es así, realiza una determinada acción.
if(typeof cardArray[i]['special']!=='undefined'){ // do stuff }Desafortunadamente, aunque estoy usando typeof para verificar que la matriz contiene una clave especial definida, sigo obteniendo
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'especial')
¿Qué estoy haciendo mal aquí o hay un mejor enfoque para esto en general?
Como se menciona en los comentarios, su problema probablemente esté dentro de su ciclo.
Eche un vistazo a este ejemplo que se ejecuta sin errores:
const cardArray = [{ 'special': 'pasta' }, { 'regular': 'bread' }] for (let i = 0; i < cardArray.length; i++) { console.log(`Loop number ${i}`) if(typeof cardArray[i]['special']!=='undefined'){ console.log(`Found: ${cardArray[i]['special']}`) } }