Using . map() Create a variable that contains all user ages: [23, 15, 30]

Asked

Viewed 90 times

-3

What was requested: Using . map() Create a variable that contains all user ages: [23, 15, 30]. I created the code but the return I have is Undefined and I don’t know where is error.

const usuarios = [
    { nome: 'Diego', idade: 23, empresa: 'Rocketseat' },
    { nome: 'Gabriel', idade: 15, empresa: 'Rocketseat' },
    { nome: 'Lucas', idade: 30, empresa: 'Facebook' },
   ];
const idades = usuarios.map(item =>{
    item = usuarios.idade;
});
console.log(idades);



2 answers

2

You must return item.idade because item represents an object within the users list

const usuarios = [{
    nome: 'Diego',
    idade: 23,
    empresa: 'Rocketseat'
  },
  {
    nome: 'Gabriel',
    idade: 15,
    empresa: 'Rocketseat'
  },
  {
    nome: 'Lucas',
    idade: 30,
    empresa: 'Facebook'
  },
];
const idades = usuarios.map(item => {
  return item.idade;
});
//ou alternativamente
//const idades = usuarios.map(item => item.idade;);

console.log(idades);

2

You can’t just change the value of item, the method of arrays .map( need a return to have the substitute value for each position of the iterating array. in view of item = you need to use return.

That is to say:

const usuarios = [
    { nome: 'Diego', idade: 23, empresa: 'Rocketseat' },
    { nome: 'Gabriel', idade: 15, empresa: 'Rocketseat' },
    { nome: 'Lucas', idade: 30, empresa: 'Facebook' },
];
const idades = usuarios.map(item => {
  return item.idade;
});
console.log(idades);

In more compressed Javascript you could do so:

const idades = usuarios.map(({idade}) => idade);

Example:

const usuarios = [
    { nome: 'Diego', idade: 23, empresa: 'Rocketseat' },
    { nome: 'Gabriel', idade: 15, empresa: 'Rocketseat' },
    { nome: 'Lucas', idade: 30, empresa: 'Facebook' },
];
const idades = usuarios.map(({idade}) => idade);
console.log(idades);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.