Undefined em Javascript

JavaScript

ECMAScript

09/02/2020

const teste = [
  {
    id: 001,
    nome:'primeiro'
  },
  {
    id: 002,
    nome: 'segundo'
  },
  {
    id:004,
    nome:'terceiro'
  },
  {
    id: 010,
    nome: 'quarto'
  }
]


function procura(id){
  teste.forEach((item, index) => {
    if(item[index]['id'] === id){     // aqui diz que o 'id' esta undefined, mas n consigo ver o pq 
      return index;
    }
  })
  return -1;
}




Alguem pra dar essa luz
Wendel Rios

Wendel Rios

Curtidas 0

Respostas

Kleber Santos

Kleber Santos

09/02/2020

const teste = [
  {
    id: 001,
    nome:'primeiro'
  },
  {
    id: 002,
    nome: 'segundo'
  },
  {
    id:004,
    nome:'terceiro'
  },
  {
    id: 010,
    nome: 'quarto'
  }
]


function procura(id){
  teste.forEach((item, index) => {
    if(item[index]['id'] === id){     // aqui diz que o 'id' esta undefined, mas n consigo ver o pq 
      return index;
    }
  })
  return -1;
}




Alguem pra dar essa luz


Acho que você está se confundindo, Item não é um array,

function procura(id){
teste.forEach((item, index) => {
if(item[index]['id'] === id){ // aqui diz que o 'id' esta undefined, mas n consigo ver o pq
return index;
}
})
return -1;
}



utilize assim:

if(teste[index].id === id)

ou utilize as propriedades do forEach assim:

if(item.id === id)
GOSTEI 0
Wendel Rios

Wendel Rios

09/02/2020

const teste = [
  {
    id: 001,
    nome:'primeiro'
  },
  {
    id: 002,
    nome: 'segundo'
  },
  {
    id:004,
    nome:'terceiro'
  },
  {
    id: 010,
    nome: 'quarto'
  }
]


function procura(id){
  teste.forEach((item, index) => {
    if(item[index]['id'] === id){     // aqui diz que o 'id' esta undefined, mas n consigo ver o pq 
      return index;
    }
  })
  return -1;
}




Alguem pra dar essa luz


Acho que você está se confundindo, Item não é um array,

function procura(id){
teste.forEach((item, index) => {
if(item[index]['id'] === id){ // aqui diz que o 'id' esta undefined, mas n consigo ver o pq
return index;
}
})
return -1;
}



utilize assim:

if(teste[index].id === id)

ou utilize as propriedades do forEach assim:

if(item.id === id)
Pois eh eu tinha percebido q eu estava confundindo o elemento do array com o proprio array em si. Eu mudei o codigo mas continua nao funcionando do jeito que deveria

const teste = [
{
id: 001,
nome:'primeiro'
},
{
id: 002,
nome: 'segundo'
},
{
id:004,
nome:'terceiro'
},
{
id: 010,
nome: 'quarto'
}
]

function procura(id){
   teste.forEach((item, index) => {
      if(item.id === id){
          return index;
      }
  })
return -1;
}

const index = procura(001)
console.log(index)


Ta retornando - e era pra me retornar 0
GOSTEI 0
Wendel Rios

Wendel Rios

09/02/2020

const teste = [
  {
    id: 001,
    nome:'primeiro'
  },
  {
    id: 002,
    nome: 'segundo'
  },
  {
    id:004,
    nome:'terceiro'
  },
  {
    id: 010,
    nome: 'quarto'
  }
]


function procura(id){
  teste.forEach((item, index) => {
    if(item[index]['id'] === id){     // aqui diz que o 'id' esta undefined, mas n consigo ver o pq 
      return index;
    }
  })
  return -1;
}




Alguem pra dar essa luz


Acho que você está se confundindo, Item não é um array,

function procura(id){
teste.forEach((item, index) => {
if(item[index]['id'] === id){ // aqui diz que o 'id' esta undefined, mas n consigo ver o pq
return index;
}
})
return -1;
}



utilize assim:

if(teste[index].id === id)

ou utilize as propriedades do forEach assim:

if(item.id === id)
Pois eh eu tinha percebido q eu estava confundindo o elemento do array com o proprio array em si. Eu mudei o codigo mas continua nao funcionando do jeito que deveria

const teste = [
{
id: 001,
nome:'primeiro'
},
{
id: 002,
nome: 'segundo'
},
{
id:004,
nome:'terceiro'
},
{
id: 010,
nome: 'quarto'
}
]

function procura(id){
   teste.forEach((item, index) => {
      if(item.id === id){
          return index;
      }
  })
return -1;
}

const index = procura(001)
console.log(index)


Ta retornando 1- e era pra me retornar 0
GOSTEI 0
Kleber Santos

Kleber Santos

09/02/2020

Utilize o console.log() nas variáveis id e item.id, para verificar.

O operador === compara também tipo, por exemplo:

'1' === 1 vai dar false, pois são tipos diferentes
GOSTEI 0
Kleber Santos

Kleber Santos

09/02/2020

Utilize o console.log() nas variáveis id e item.id, para verificar.

O operador === compara também tipo, por exemplo:

'1' === 1 vai dar false, pois são tipos diferentes


Se você precisa do 0 a esquerda do número, utilize como string '001', caso contrário o JavaScript vai ignorar esse 0 á esquerda.
GOSTEI 0
POSTAR