Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

[Dúvida] Dúvida return

Boa noite! Tive uma dúvida, no código abaixo na function passouTodaATela tem um parênteses e dentro dele está xCarro, também aparece na linha abaixo no return xCarro. Pq xCarro e não xCarros tendo em vista que não tem nenhuma variável xCarro criada já que utilizei a lista com o nome xCarros?

function voltaPosicaoInicialDoCarro(){
  for (let i = 0; i < imagemCarros.length; i = i + 1){
    if (passouTodaATela(xCarros[i])){
      xCarros[i] = 600;
    }
  }
}

function passouTodaATela(xCarro){
  return xCarro < - 50;
5 respostas

Boa noite Logan,

nas funções você declara entre os parênteses quando existe algum argumento necessário para ser passado à função, essa variável não tem relação com a xCarros, ela existirá apenas dentro da função, você poderia ter dado um outro nome qualquer, por exemplo:

function passouTodaATela(xVeiculo){
  return xVeiculo < - 50;

Entendi, então no caso a forma da função passouTodaATela verficar realmente se meu carro passou é no for da função voltaPosicaoInicialDoCarro no momento em que após ele puxar a função passouTodaATela ele acrescenta entra parênteses o xCarros[i], correto?

Sim, no laço 'for' ele irá testar todos os carros, passando a array xCarros[i] uma a uma para a função passouTodaATela(), todos que tiverem o valor menor que -50 serão substituídos por 600.

solução!

Oii Logan, como o Matheus pontuou, quando você chama a sua função em geral ela pode ou não receber argumentos para realizar validações ou calculos

Esse argumento é uma variável que pelo que eu já entendi nos estudos, não precisa ser inicializada como vemos outras

Assim, quando você declarou um array xCarros e quer percorrer todos os valores desse array usando o for, o xCarros é um item na memória. Quando nesse for você chama a função passouTodaATela(xCarros[i]) você está pegando outro pedaço da memória e pedindo pra verificar e esse valor que está na posição i é menor que 50. Assim não importa que o nome do arumento que a função passouTodaATela(xCarros[i]) recebeu seja igual o seu array inicial. Em outras linguagens é comum a gente repetir também variáveis iniciais e argumentos de funções com o mesmo nome levando em conta o entendimento do programa que estamos criando

Perfeito, obrigado mesmo Vinicius e Matheus.