Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

273
Vistas
¿Cómo agrego un nuevo elemento en un diccionario en JS?

Tengo este tipo de diccionario: INPUT

 movies = { 'big' : { actors : ['Elizabeth Perkins', 'Robert Loggia'] }, 'forrest gump' : { actors : ['Tom Hanks', 'Robin Wright', 'Gary Sinise'] }, 'cast away' : { actors : ['Helen Hunt', 'Paul Sanchez'] } };

y quiero usar este diccionario para obtener uno diferente. Por ejemplo, tengo que hacer una función llamada "películas con actores" que recibirá dos argumentos: "películas" y "actor". El actor podría ser "Tom Hanks", por lo que cuando descubre que estuvo en la película, no lo agrega a la matriz anidada, pero si no lo estaba, lo agrega.

PRODUCCIÓN

 movies = { 'big' : { actors : ['Elizabeth Perkins', 'Robert Loggia', 'Tom Hanks'] }, 'forrest gump' : { actors : ['Tom Hanks', 'Robin Wright', 'Gary Sinise'] }, 'cast away' : { actors : ['Helen Hunt', 'Paul Sanchez', 'Tom Hanks] } };

Hago esto:

 for (const value of Object.values(newMovies)){ console.log(value.actors) for (const act of value.actors){ //console.log(act) if (act == actor) { console.log("Ok, not add") }else{ console.log("Here I have to add"); } } }

donde "newMovies" es una copia de "movies" y "actor = "Tom Hanks" pero no puedo agregar a la matriz en actores: [ ... ]. ¿Alguna sugerencia? ¿Puedo usar map() ?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Según el requisito, lo que entendí es que existe una variedad de objetos de películas y desea asignar un hero en esas películas. Tenemos que ignorar si el nombre del héroe pasado ya está allí para esa película; de lo contrario, agregue ese héroe debajo de esa película. Si mi entendimiento es correcto, aquí tienes :

 const movies = { 'big' : { actors : ['Elizabeth Perkins', 'Robert Loggia'] }, 'forrest gump' : { actors : ['Tom Hanks', 'Robin Wright', 'Gary Sinise'] }, 'cast away' : { actors : ['Helen Hunt', 'Paul Sanchez'] } }; function updateMoviesList(obj, heroName) { Object.keys(obj).forEach(key => { if (!obj[key].actors.includes(heroName)) { obj[key].actors.push(heroName) } }) return obj; } console.log(updateMoviesList(movies, 'Tom Hanks'));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes usar Empujar()

Me gusta esto de docs

 let sports = ['soccer', 'baseball'] let total = sports.push('football', 'swimming') console.log(sports) // ['soccer', 'baseball', 'football', 'swimming'] console.log(total.length) // 4

Para acceder a la matriz dentro del diccionario, primero debe acceder a ella

 movies['big']['actors'].push('New Actor')

¿Para no ser "codificado", si haces esto?

 let actor = 'Tom Hanks' for (const value of Object.values(newMovies)){ for (const act of value.actors){ if (value.actors.includes(actor)) { //Here you check if actor contains in array console.log("Ok, not add") }else{ console.log("Here I have to add"); value.actors.push(actor) //if not push to array } } }
about 4 years ago · Juan Pablo Isaza Denunciar

0

I was suggested to use map instead and the class Object... 

 function actorInMovies(movies, actor) { let mappedObject = { ...movies}; Object.entries(movies).map(movie => { const movieName = movie[0]; const actors = movie[1].actors; if (!actors.includes(actor)) actors.push(actor); mappedObject = { ...mappedObject, [movieName]: { actors } }; }); return mappedObject } function main(){ const movies = { 'big' : { actors : ['Elizabeth Perkins', 'Robert Loggia'] }, 'forrest gump' : { actors : ['Tom Hanks', 'Robin Wright', 'Gary Sinise'] }, 'cast away' : { actors : ['Helen Hunt', 'Paul Sanchez'] } }; const actor = 'Tom Hanks'; console.log(actorInMovies(movies, actor)) } main();

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda