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

99
Vistas
Recorriendo un diccionario en javascript con una lista dentro de los valores

No estoy seguro de cómo analizar una lista de cadenas dentro de un bucle con respecto a este diccionario.

 var student_nicknames = [ {name: "William", nickname: "Bill"}, {name: "Joseph", nickname: "Joe"}, {name: "Maria", nickname: "Mary"}, {name: "Richard", nickname: ["Rick", "Ricky"]}, {name: "Elizabeth", nickname: ["Liz", "Lisa", "Beth"]} ]; total_nicknames = function(){ student_nicknames.forEach(function(student) { console.log(student.nickname); }); }

Producción

 Bill Joe Mary [ 'Rick', 'Ricky' ] [ 'Liz', 'Lisa', 'Beth' ]

Salida deseada

 Bill Joe Mary Rick Ricky Liz Lisa Beth
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Todo lo que necesita hacer es tener una condición if para verificar si la propiedad de apodo de cada estudiante es una matriz o no, si es una matriz, puede recorrerla e imprimir cada elemento individualmente, de lo contrario, siga su lógica.

 var student_nicknames = [ { name: "William", nickname: "Bill" }, { name: "Joseph", nickname: "Joe" }, { name: "Maria", nickname: "Mary" }, { name: "Richard", nickname: ["Rick", "Ricky"] }, { name: "Elizabeth", nickname: ["Liz", "Lisa", "Beth"] } ]; const total_nicknames = function () { student_nicknames.forEach(function (student) { if (Array.isArray(student.nickname)) { // <- HERE student.nickname.forEach((e) => console.log(e)); } else { console.log(student.nickname); } }); }; total_nicknames();
about 4 years ago · Juan Pablo Isaza Denunciar

0

una solución simple basada en la recursividad.

 function total_nicknames(student_nicknames) { for(let i = 0; i < student_nicknames.length; i++){ let student = student_nicknames[i]; if(typeof student === 'object' && student !== null) { if(Array.isArray(student.nickname)){ total_nicknames(student.nickname); }else { console.log(student.nickname); } }else { console.log(student); } } } console.log(total_nicknames(student_nicknames)); /* output */ // "Bill" // "Joe" // "Mary" // "Rick" // "Ricky" // "Liz" // "Lisa" // "Beth"
about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede crear un pequeño bucle recursivo llamando de nuevo a la función total_nicknames , si student.nickname es una matriz. También necesita usar || (OR), para obtener el apodo (que sería una cadena, si recorre la matriz) y no undefined (ya que el objeto de cadena no tiene ningún método/propiedad de apodo).

 var student_nicknames = [{ name: "William", nickname: "Bill" }, { name: "Joseph", nickname: "Joe" }, { name: "Maria", nickname: "Mary" }, { name: "Richard", nickname: ["Rick", "Ricky"] }, { name: "Elizabeth", nickname: ["Liz", "Lisa", "Beth"] } ]; total_nicknames = function(arr) { arr.forEach(function(student) { if (Array.isArray(student.nickname)) { total_nicknames(student.nickname) } else console.log((student.nickname || student)); }); } total_nicknames(student_nicknames);

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