All Or Nothing pt-br Explainer

Objetivo deste desafio: Completar a função check() para que ela retorne o número de testes ou false se algum dos testes falhar.

Passo a passo da solução: A variável testResults é uma array de strings. Cada string é 'pass' ou 'fail'. Por exemplo, poderia ser ['pass', 'fail', 'pass'] ou ['pass', 'pass', 'pass', 'pass'].

Uma vez concluída a função check(), ela deverá ser capaz de retornar 'failed' no 1º exemplo ou 4 no 2º exemplo.

Para começar, a função usa 1 parâmetro, results, que armazenará a array de testes. Para ver cada resultado de teste, podemos usar um laço for. for (var test of results) {...}.

Dentro do laço, precisamos verificar se o test é 'pass' ou 'fail'. Se for 'pass', podemos passar a verificar o próximo item. Se for 'fail', então sabemos que a função deve retornar apenas 'failed'. Dentro do laço, adicione:

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

Se todos os itens do laço forem 'pass', então podemos retornar o número total de testes aprovados, que é apenas o comprimento da array results. Após o laço, mas ainda dentro da declaração de função, return results.length. Também é possível adicionar + ' tests passed' para que fique mais claro o que significa o número.

Código da solução*:

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 executado antes do código do desafio):

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

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

Tentei fazer mas não estou conseguindo.

1 Like

image
VEJA SE ISSO SERVE VOCÊ(USE O TRADUTOR,eu falo espanhol)

Tbm tentei e não estou conseguindo…