Me pregunto si es posible volver a un ciclo while en lugar de tener que volver a escribirlo.

Ejemplo simple:

let sum = 0;
let value = 10;

while (sum < value) {
    // do code
    sum++;
};

// sum is changed for some reason outside of loop, after iteration
sum = 3

// iterate through the loop again?

En vez de..

let sum = 0;  
let value = 10;

while (sum < value) {
    // do code
    sum++;
};

// sum is changed for some reason outside of loop, after iteration
sum = 3;

while (sum < value) {
  // do same code again
  sum++;
};

Supongo que puede crear una función con el bucle while, pero ¿es posible manejar esto de otra manera?

Gracias de antemano.

0
user7069368 28 oct. 2017 a las 21:12

4 respuestas

La mejor respuesta

Si está en un entorno ES6, puede usar un setter para observar un objeto y ejecutar una función cuando cambia una de sus propiedades.

let obj = {
  value: 20,
  set sum(sum) { 
    while (sum < this.value) {
      // some code
      sum++;
    }
  }
};

obj.sum = 5; // execute the code inside the while 15 times
obj.sum = 10; // execute the code other 10 times

También puede echar un vistazo a Proxies

0
Cristian Traìna 28 oct. 2017 a las 18:32

Puede tomar los valores en una matriz y recorrer la matriz y el ciclo while dentro del ciclo for.

var sums = [0, 3],
    sum,
    value = 10,
    i;

for (i = 0; i < sums.length; i++) {
    sum = sums[i];
    console.log('outer', sum);
    while (sum < value) {
        // do code
        sum++;
        console.log('inner', sum);
    }
}
.as-console-wrapper { max-height: 100% !important; top: 0; }
0
Nina Scholz 28 oct. 2017 a las 18:33

Hacer la función de bucle. Las funciones ayudan a evitar la duplicación de código.

let sum = 0;  
let value = 10;

function loopy() {
  while (sum < value) {
      // do code
      console.log(sum++)
  };
}

loopy();

// sum is changed for some reason outside of loop, after iteration
sum = 3;

loopy();
1
Nick 28 oct. 2017 a las 18:16

Las funciones son uno de los bloques de construcción fundamentales en JavaScript. Una función es un procedimiento de JavaScript: un conjunto de declaraciones que realiza una tarea o calcula un valor. Para usar una función, debe definirla en algún lugar del ámbito desde el que desea llamarla.

let sum = 0;  
let value = 10;
valueSum(sum , value);
sum = 3;
valueSum(sum , value);


function valueSum(sum , Value){
while (sum < value) {
    // do code
    sum++;
};

}
0
Salman 28 oct. 2017 a las 18:18