All or Nothing es-419 Explainer

Explicación de Todo o nada

Objetivo de este acertijo: Completar la función check() para que devuelva el número de pruebas, o false si alguna de las pruebas falla.

Tutorial de la solución: La variable testResults es un arreglo de strings. Cada string es 'pass' o 'fail'. Por ejemplo, podría ser ['pass', 'fail', 'pass'] o ['pass', 'pass', 'pass', 'pass'].

Una vez que se completa la función check(), debe poder devolver 'failed' en el primer ejemplo o 4 en el segundo ejemplo.

Para comenzar, la función usa 1 parámetro, results, que almacenará el arreglo de pruebas. Para ver el resultado de cada prueba, podemos usar un for loop. for (var test of results) {...}.

Dentro del ciclo, debemos verificar si la test es 'pass' o 'fail'. Si es 'pass', podemos continuar para verificar el siguiente elemento. Si es 'fail', entonces sabemos que la función simplemente debe devolver 'failed'. Inside the loop, add

if (test === 'fail') {
  return 'failed';
}

Si cada elemento en el ciclo es 'pass', podemos devolver el número total de pruebas aprobadas, que es simplemente lo largo del arreglo results. Después del ciclo, pero todavía dentro de la declaración de función, return results.length. También puedes agregar + ' tests passed' para que quede más claro qué significa el número.

Código de solución:

import {testResults} from 'grasshopper.laboratory';

function check(results) {
    for (var testResult of results) {
        if (testResult === 'fail') {
return 'failed';
        }
    }
    return results.length + ' tests passed';
}
console.log(check(testResults));

Código adicional (código oculto que se ejecuta antes del código del acertijo):

const _len = 3 + pickRandom(3);
let testResults = Array(_len).fill('pass');

 if (Math.random()<0.5) {
    _res[pickRandom(_len)-1] = 'fail';
}
10 Likes

Hola, cuando agrego el segundo if statement me dice que declare tesresult como variable, no me doy cuenta que estoy haciendo mal, devuelve el resultado bien, solicito aclaración, gracias

1 Like

la variable que debes usar en la if es ‘element’ hay un error parece con ese punto del acertijo, saludos

Este acertijo esta bugeado.

1 Like