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';
}