var a = 0; var param = 'add'; while(a < 50){ console.log(a); //prints out values from 0 to 49 if(param === 'add'){ a = a + 1; }else{ a = a - 1; } }Si bien es muy simple y hace su trabajo, me gustaría acortar este código.
while(a < 50){ console.log(a); a = a + (param === 'add')? 1 : -1; }Pero a nunca crece y permanece 1. ¿Alguien podría explicar tal comportamiento?
La expresión se evalúa como
a = (a + (param === 'add')) ? 1 : -1;que se reduce a
a = 1;Puedes resolver esto escribiendo
a = a + ((param === 'add') ? 1 : -1);o incluso más corto:
a += (param === 'add') ? 1 : -1;