Quiero iterar sobre una matriz de variables y luego presionar / console.log el nombre de variable de cada una.
Este código no funciona como pensé.
let firstOne = true; let secondOne = true; let thirdOne = false; let errorArray = [firstOne, secondOne, thirdOne]; errorArray.forEach((element) => { if (element == true) { console.log((Object.keys({ element })[0])); } });Esperaba ver firstOne, secondOne en console.log, pero en cambio, es solo 'elemento'.
Las matrices no tienen claves. Utilizan índices numéricos. Para obtener la llave, necesitarás usar un objeto. Para iterar el objeto, conviértalo en una matriz de pares [key, value] usando Object.entries() . Cuando itere la matriz de pares, use la desestructuración para obtener el element y la key .
let firstOne = true; let secondOne = true; let thirdOne = false; let errorArray = Object.entries({ firstOne, secondOne, thirdOne }); errorArray.forEach(([key, element]) => { if (element) { console.log(key); } });Esto es muy similar a otra respuesta pero una sintaxis ligeramente diferente, pero el concepto permanece para convertir el objeto en una matriz e iterarlo como un par clave/valor.
let firstOne = true; let secondOne = true; let thirdOne = false; let errorObjs = { firstOne, secondOne, thirdOne }; for (const [key, value] of Object.entries(errorObjs)) { if (value) { console.log(`${key}: ${value}`); } }