Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

110
Visualizações
Matriz de mapas de JavaScript

matriz llamada 'notas' contiene 5 objetos, cada objeto tiene claves

 var notes = [ { title: "Home", message: "is a good story", status: 'new', author:"dala", }, { title: "School", message: "Have to go everday", status: 'new', author:"aisha", }, { title: "study", message: "we have exam to pass", status: 'new', author:"Omar", }, { title: "Work", message: "dead line is close", status: 'new', author:"Said", }, { title: "homework", message: "as today we need to do it", status: 'new', author:"Amal", }, ];

quiero actualizar el estado de todas las notas para que se 'completaran', el error es que el código solo actualiza el primer Objeto

 function map(notes,callback){ const newNotes =[]; for(var i=0; i<notes.length; i++) { const result = callback(notes[i].status = "completed",i); newNotes.push(result); return newNotes; } } var outp = map(notes,function(value, i){ console.log(i) for(var a= 0; a<value.length; a++){ return notes; } }) console.log(outp);

Estaba entrenando en la función de devolución de llamada, y este código de entrenamiento era la cara de un problema al escribir el código. Si tiene recursos útiles para aprender, compártalos conmigo.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

No necesita escribir su propia función de map , Array.prototype.map ya hace lo que hace su función de map (y un poco más, pero eso no es relevante).

El problema es:

  • Su map return newNotes; dentro del ciclo for , por lo que regresa cuando el ciclo solo ha hecho uno de los elementos.
  • map no está llamando a su devolución de llamada correctamente.
  • Su devolución de llamada no está haciendo lo que la función de map espera que haga.

La llamada a su devolución de llamada debe ser simplemente:

 const result = callback(notes[i], i);

Y el return newNotes; debería estar después del bucle.

Luego, su devolución de llamada debería crear un nuevo objeto con las propiedades del objeto original pasado, más status: "completed" , tal vez usando un objeto literal con sintaxis extendida, como este:

 const output = map(notes, function(note, index) { return {...note, status: "completed" }; });
about 4 years ago · Juan Pablo Isaza Relatório

0

En la función de mapa, returned la matriz newNotes dentro del bucle for en lugar de después. Sin embargo, sugeriría usar la función de map incorporada.

 var notes = [ { title: "Home", message: "is a good story", status: 'new', author:"dala", }, { title: "School", message: "Have to go everday", status: 'new', author:"aisha", }, { title: "study", message: "we have exam to pass", status: 'new', author:"Omar", }, { title: "Work", message: "dead line is close", status: 'new', author:"Said", }, { title: "homework", message: "as today we need to do it", status: 'new', author:"Amal", }, ]; function map(notes,callback){ const newNotes =[]; for(var i=0; i<notes.length; i++) { const result = callback(notes[i].status = "completed",i); newNotes.push(result); } return newNotes; } var outp = map(notes,function(value, i){ console.log(i) for(var a= 0; a<value.length; a++){ return notes; } }) console.log(outp);

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda