digamos que tiene una sentencia if:
try { if (!a || !b || !c || !d) { let nullVariable = ???; // use the variable that is null throw nullVariable } } catch (ex) { log.debug(`${ex} is not defined`); }¿Existe una forma integrada de ver qué variable se estableció en nulo, sin crear una declaración if para cada variable individual?
Puede poner la asignación dentro de la expresión de condición if .
let a, b, c, d; a = 3; b = "foo"; d = {x: 10}; let nullVariable = (!a && 'a') || (!b && 'b') || (!c && 'c') || (!d && 'd'); if (nullVariable) { console.log(`${nullVariable} is not defined`); }Puede extraer el nombre de la variable usando la abreviatura de objeto.
const fn = ({ a, b, c, d }) => { let nullVariable = Object.entries({ a, b, c, d }).find(([_, val]) => !val)?.[0]; if(nullVariable) console.log(nullVariable + ' is falsy'); }; fn({ a: 1, c: 2, d: 3 }); fn({ a: 1, b: 2, c: 3 }); fn({ a: 1, b: 2, c: 3, d: 4 });