Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvidas sobre o exercício!

Olá!

A forma como solucionei o exercício, foi a seguinte:

        let numeros = [3,2,11,20,8,7];
            numeros = numeros.map(function(item){
            if( item % 2 != 0 ){
                return item * item;
            }
            return item;
        });
       console.log( numeros );

Não entendi esta linha:

let novosNumeros = numeros.map(item =>  item % 2 ? item * 2 : item);

Como funciona o '?' e o ':' ?

Quando criei o 'if' no map, estava buscando uma forma de enxugar mais o código, esta solução com '?' e ':' seria o ideal, mas estou bem perdida. Poderiam me ajudar a entender e até me passar referências para aprender mais sobre?

Ah! E a forma como solucionei, pode se dizer que é uma solução OOP e não verbosa?

Obrigada!

1 resposta
solução!

Henrique, boa tarde!

Isso se chama um operador ternário, que é basicamente um if, veja:

condição ? valorVerdadeiro : valorFalso

Nesse caso do seu exemplo seria:

let novosNumeros = numeros.map(item =>  item % 2 ? item * 2 : item);
  //SE o resto da divisão por 2 for diferente de 0 isso é verdadeiro, ele retorna o item*2, caso for 0 ele irá retornar falso então ele retorna o próprio item

Sendo assim antes do ? vem a condição, depois dele vem o que fazer caso seja verdadeiro, e depois do : vem o que fazer caso seja falso;

fonte: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/Operador_Condicional

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software