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

94
Vistas
Cree una nueva matriz a partir de otras dos matrices en Javascript

Tengo dos matrices:

El alphabet se compone de letras (por ejemplo, el alfabeto inglés). dictionary es una lista de objetos con palabras y definiciones, siendo 'word' la clave para el valor de la palabra.

Quiero construir una nueva matriz llamada frequency que contenga la cantidad de palabras que comienzan con cada letra en la matriz alfabética, con índices correspondientes a la matriz alfabética.

He logrado llegar a lo siguiente:

 alphabet.forEach(function(letter) { frequency = dictionary.filter(item => item['word'].toLowerCase().startsWith(letter)).length; });

Esto me da valores individuales para frequency . ¿Cuál es la mejor sintaxis en Javascript para construir una matriz de esos valores? es otro filtro? ¿O debería el código usar el forEach actual manualmente con un índice incremental?

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

0

Con reduce, puede crear fácilmente un nuevo objeto con la letra como clave y una serie de coincidencias como valor.

 const words = ["abba", "ant", "apple", "bannana", "barn", "car", "cat"]; const alphabet = "abcdefghijklmnopqrstuvwxyz".split(""); const result = alphabet.reduce((a, letter) => { a[letter] = words.filter(word => word.toLowerCase().startsWith(letter)); return a; }, {}); console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Primero, obtengamos algunos datos de ejemplo. Ignoraremos todo lo que no esté relacionado con la pregunta.

 const alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('') var dictionary = [{'word': 'alpha'}, {'word': 'beta'}, {'word': 'balloon'}]

Luego, crearemos una variable de results , que contendrá una matriz de todos los resultados en orden alfabético.

 var results = []

Ahora hacemos un bucle de la misma manera que lo hizo antes, pero push cada resultado a nuestra lista.

 alphabet.forEach(function(letter) { frequency = dictionary.filter(item => item['word'].toLowerCase().startsWith(letter)).length; results.push(frequency); });

Como una solución alternativa que nos permite ver más fácilmente nuestros resultados, convertiremos los resultados en un objeto y usaremos letras como claves.

 var results = {}; alphabet.forEach(function(letter) { frequency = dictionary.filter(item => item['word'].toLowerCase().startsWith(letter)).length; results[letter] = frequency; });
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