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

292
Visualizações
crear un objeto a partir de una matriz ordenada alfabéticamente donde las claves son las primeras letras y los valores son las cadenas

He estado tratando de obtener una salida de objeto de una matriz ordenada alfabéticamente.

Por ejemplo, si tengo arr = ['anger', 'apple', 'bowl', 'cat'] entonces quiero que mi objeto sea como obj = { a: ['anger', 'apple'], b: ['bowl'], c:['cat']}

Hasta ahora tengo esto, pero no funciona correctamente.

 const p4 = function (arr) { let val = {}; const sortArr = arr.sort(); for (let i = 0; i < sortArr.length; i++) { for (let j = i; j < sortArr.length; j++) { if (sortArr[i].charAt(0) == sortArr[j].charAt(0)) { val.sortArr[j].charAt(0) =sortArr[j] ; } } return val; } };
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puedes usar reduce :

 let arr = ['anger', 'apple', 'bowl', 'cat'] const result = arr.reduce((a, b) => { let c = b.charAt(0); if (a[c]) { a[c].push(b) } else { a[c] = [b]; } return a; }, {}) console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório

0

En el código:

 let val = {}; const sortArr = arr.sort();

sort ordena en su lugar y devuelve la matriz ordenada, por lo que sortArr y arr hacen referencia a la misma matriz (ordenada). Podrías simplemente hacer:

 arr.sort()

y use arr a continuación en lugar de sortArr .

 for (let i = 0; i < sortArr.length; i++) { for (let j = i; j < sortArr.length; j++) {

No hay necesidad de procesar la matriz dos veces. Todo lo que necesitas hacer es:

  1. Iterar sobre cada valor en la matriz
  2. Obtener la primera letra del valor
  3. Si el objeto val no tiene una propiedad con ese nombre, créelo y asígnele una matriz al valor
  4. Inserte la cadena en la matriz val[char]

P.ej

 function arrToObj(arr) { arr.sort(); let result = {}; for (let i=0, c; i<arr.length; i++) { c = arr[i].substr(0,1); if (!result[c]) { result[c] = []; } result[c].push(arr[i]); } return result; } let arr = ['anger', 'apple', 'bowl', 'cat'] console.log(arrToObj(arr));

También puedes hacer lo mismo con reduce :

 let arr = ['anger', 'apple', 'bowl', 'cat'] let obj = arr.sort().reduce((acc, v) => { let c = v.substr(0,1); if (!acc[c]) acc[c] = []; acc[c].push(v); return acc; }, {}); console.log(obj);

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