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

168
Visualizações
Ordenar el mapa por clave devuelve el objeto de mapa ordenado con la primera clave en el último índice

La siguiente función crea un objeto Map a partir de dos matrices. Estoy tratando de ordenar el mapa por clave en un nuevo objeto de mapa usando el método de ordenación, como se muestra en Mozilla Docs. El objeto mapSort está ordenando correctamente todas las claves, además del hecho de que está colocando la primera clave en el último índice.

 const sortMapByKey = () => { const keyArray = [4, 6, 16, 18, 2] const valueArray = [103, 123, 4444, 99, 2000] const buildMap = (keys, values) => { const map = new Map(); for(let i = 0; i < keys.length; i++){ map.set(keys[i], values[i]); }; const mapSort = new Map([...map.entries()].sort(function(a, b) { return a - b; })); return mapSort }; return buildMap(keyArray, valueArray) }

La salida actual:

 Map { 4 => '103', 6 => '123', 16 => '4444', 18 => '99', 2 => '2000' }

La salida deseada:

 Map { 2 => '2000', 4 => '103', 6 => '123', 16 => '4444', 18 => '99' }

¿Alguna pista sobre lo que estoy haciendo mal con mi tipo?

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

0

Las entradas son un par clave-valor, por ejemplo, [1, 103] . Hacer return a - b intenta restar dos matrices de este tipo, lo que no tiene sentido: primero debe extraer la clave del par de entrada.

 const mapSort = new Map([...map.entries()].sort(function(entryA, entryB) { return entryA[0] - entryB[0]; })); 

 const keyArray = [4, 6, 16, 18, 2] const valueArray = [103, 123, 4444, 2000] const buildMap = (keys, values) => { const map = new Map(); let objectArray = [] for (let i = 0; i < keys.length; i++) { map.set(keys[i], values[i]); }; const mapSort = new Map([...map.entries()].sort(function(entryA, entryB) { return entryA[0] - entryB[0]; })); return mapSort }; console.log(buildMap(keyArray, valueArray));

o desestructurar:

 const mapSort = new Map( [...map.entries()] .sort(([a], [b]) => a - b) ); 

 const keyArray = [4, 6, 16, 18, 2] const valueArray = [103, 123, 4444, 2000] const buildMap = (keys, values) => { const map = new Map(); let objectArray = [] for (let i = 0; i < keys.length; i++) { map.set(keys[i], values[i]); }; const mapSort = new Map( [...map.entries()] .sort(([a], [b]) => a - b) ); return mapSort }; console.log(buildMap(keyArray, valueArray));

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