Fala pessoal, tudo bom? Minha dúvida é a seguinte:
let novosNumeros = numeros.map(item => item % 2 ? item * 2 : item);
Tecnicamente o operador ternário não identificaria a primeira sintase ( item % 2) como verdadeira, uma vez que não há um operador NOT (!) nessa situacao?
Pergunto porque eu vi que no forúm já fizeram essa pergunta e um dos instrutores respondeu que:
"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"
Ele também deixou um link da documentacão oficial para sanar a dúvida e eu fui checar. O link é esse: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/Operador_Condicional
Quando li a documentacão aponta a seguinte informacão:
"Se condition é true, o operador retornará o valor de expr1; se não, ele retorna o valor de exp2"
Agora o ponto da minha pergunta:
Lendo o código eu interpreto que se o resto da sobra da divisão por 2 é TRUE ele deveria manter o item e caso fosse FALSE ele multiplicaria. Para entender melhor a minha dúvida, eu escreveria o código da maneira abaixo:
let novosNumeros = numeros.map(item => item % 2 ? item : item * 2 );
Poderia explicar um pouco mais detalhado para mim porque fiquei meio confuso nisso e comparando o que o rapaz disse na outra pergunta do forum com o que está escrito na documentacão, me deixou mais confuso ainda.
Desculpa pelo texto gigante e obrigado pela paciência.