Inside Output pt-br Explainer

Explicação de Saída interna

Objetivo do desafio: Declarar uma variável para usar localmente dentro de uma função

Passo a passo da solução:
Em algumas funções, é necessário declarar uma variável para armazenar um valor, e depois retornar essa variável no final da função.

Neste desafio, a função sum() usará uma array de números e retornará a soma desses números.

Dentro da função, declarar uma variável para armazenar a soma. Defina seu valor como 0 para começar.

Então, adicione um laço for para fazer a iteração pela array e, dentro do bloco de código, use o operador += para adicionar cada número da array à variável local.

No final da função, abaixo do laço for, retorna a variável local.

Solução do código de exemplo:

let numbers = [2,3,5];
function sum(numberArray) {
    let sum = 0;
    for (let num of numberArray) {
        sum += num;
    }
    return sum;
}

console.log(sum(numbers));

Conceitos de JavaScript: Variáveis, Funções, Saída, Laço for, Operador +=, Comandos de retorno

3 Likes

Preciso de ajuda !!!
Não consigo passar dessa fase.

Eu não consigo concluir o desafio, meu código parece estar certo por que quando eu executo não indica nenhum erro e mostra a minha solução idêntica a solução de exemplo, mas por alguma razão o desafio não é concluído, já relatei bug e tô esperando alguma resposta.

aqui ta dando erro.tento digitar sum += num e não vai! só inclui sum += sum.

Tô tentando há horas e não consigo resolver desse jetio.

O laço for não suporta: for (let num of numberArray), não supor for(let num)?

Alguém por gentileza poderia me ajudar?

Obrigado

let numbers = [
2,
3,
5

];
function sum(numberArray) {
let soma = 0;
for (let num of numberArray) {
soma += num;
}

return soma;   deve ser fora do laço for...for

}

console.log(sum(numbers));

2 Likes

let numbers = [
2,
3,
5,
];
function sum(numberArray) {
let num = 0;
for (var element of numbers) {
num =+ element;
}
return num;
};
console.log(sum(numbers))
Existe algum erro nesse código?
Eu não consigo passar desse desafio e aparece a mensagem
“Unknown error”
Eu estava comparando a minha resposta com a solução e não acho o erro.
Se alguém puder me ajudar por favor me fala onde eu errei.

2 Likes

Gente, eu finalmente consegui resolver o desafio, ainda não entendi o porque a explicação do próprio Grasshopper não funciona, nem tem como adicionar um numero dentro do laço for of como diz o código deles , mas o meu código deu certo, segue abaixo:

let numbers = [
  2,
  3,
  5,
];
function sum(numberArray, ___) {
  let sum = 0;
  for (var element of numberArray) {
    sum += element;
  }
  return sum;
};
console.log(sum(numbers));

Espero que funcione para vocês!

14 Likes

Quando tento usar o comando let, dentro do laço for…of, diz que “não pode ser inserido aí”. Das duas, uma. Ou a resolução apresentada está incorreta, ou o Grasshopper está retornando mais um bug.

@Briam MUITO OBRIGADO, funcionou comigo.

1 Like

Pode ser. Alguns conseguem editar o for… Eu deixei como var str mesmo declarando fora do for como ler str.

Não posta a resposta assim de cara… Kk… Faz nós pensar! Mas grato pela disposição.

1 Like

Essa é a resposta !

let numbers = [
2,
3,
5,


];
function sum(numberArray, ___) {
let num = 0;
for (var element of numberArray) {
num += element;
}
return num;
};
console.log(sum(numbers));

Funcionou!! Obrigada :smiley::smiley:

1 Like

Fiz desse jeito aqui e também deu certo

let numbers = [
  2,
  3,
  5,
  ___
];
function sum(numberArray, ___) {
  let sum = 0;
  for (var num of numberArray) {
    sum += num;
  }
  return sum;
};
console.log(sum(numbers));
___

Basicamente mudei o element para num. No for (var element of numberArray)
ai ficou for (var num of numberArray)

1 Like

Obrigado, é isso mesmo: não pode usar numbers, tem que ser numberArray.

1 Like

Fernando, o comando let vc precisa usar antes do for…of, vc precisa usar o let no bloco de código da function sum(numberArray), e aí depois disso vc usa o for…of dentro também do bloco da function

Substitua numbers por numberArray

1 Like