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

Por que ao usar map e if retorna undefined?

Fiz o seguinte código:

let numeros = [3, 2, 11, 20, 8, 7]

let novosNumeros = numeros.map(item => {
    if (item % 2) { item * 2 }
    else {item}
})

console.log(novosNumeros)

Mas o resultado é que todos os elementos do vetor vêm como undefined, por que?

4 respostas

Ana,

a sintaxe correta é:

let numeros = [3, 2, 11, 20, 8, 7];
let novosNumeros = [];

function myFunction2() {
  numeros.map(function(currentValue, index, arr){
    novosNumeros[index] = currentValue;

    if (currentValue % 2) {
      novosNumeros[index] = currentValue * 2;
    }
    else {
      novosNumeros[index] = currentValue
    }
  });
}

myFunction2();

console.log(novosNumeros)
solução!

Olá Ana e Carlos.

A código do Carlos não está errado :-)

Mas, Ana, se você quer utilizar o map para criar uma nova lista, só está faltando no seu código o return para o map, porquê o map só cria uma lista a partir do que é retornado para ele. Código de exemplo:

let numeros = [3, 2, 11, 20, 8, 7]

let novosNumeros = numeros.map(item => {
    if (item % 2) {
      return item * 2
    } else {
      return item
    }
})

console.log(novosNumeros)

Obrigada!

Por nada, se aparecer mais dúvidas não deixe de postar :-)