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

124
Visualizações
Funciones de matriz concurrentes

Tengo una función que toma un conjunto de subconjuntos que contienen cadenas de números y devuelve un conjunto con el número más alto de cada subconjunto:

 const largestOfFour = arr => { arr.map(e => { e.sort((a,b) => b - a).splice(1); }); return arr.flat(); }

Funciona perfectamente en la forma en que está formateado arriba, pero no funciona si está formateado con funciones concurrentes en la matriz pasada. Así:

 const largestOfFour = arr => { return arr.map(e => { e.sort((a,b) => b - a).splice(1); }).flat(); }

En ese formato, devuelve una matriz de longitud adecuada, pero cada elemento es nulo. ¿Alguien puede ayudarme a entender por qué es eso? Por lo general, no tengo problemas para encadenar funciones concurrentes en una matriz.

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

0

No hay concurrencia en JavaScript. Pero la devolución de llamada de su map no devuelve nada (no hay return en el bloque de declaración), por lo que .map() devuelve una matriz de valores indefinidos.

Para evitar que los datos originales se alteren, también evitaría el uso de sort en la matriz original y usaría slice en lugar de splice .

Pero como solo necesita un valor de cada matriz, ni siquiera necesita slice : solo obtenga el valor en el índice 0 (lo que hace que flat sea innecesario):

 let a = [ ["1", "2", "3"], ["4", "5", "6"] ]; const largestOfFour = arr => arr.map(e => [...e].sort((a, b) => b - a)[0] ); console.log(largestOfFour(a));

O incluso mejor, simplemente use Math.max , que también realiza la conversión a número:

 let a = [ ["1", "2", "3"], ["4", "5", "6"] ]; const largestOfFour = arr => arr.map(e => Math.max(...e)); console.log(largestOfFour(a));

about 4 years ago · Juan Pablo Isaza Relatório

0

El bloque interno (en el mapa) no devuelve nada, lo que da como resultado una matriz de indefinidos. Corregido en el fragmento...

 let a = [ ["1", "2", "3"], ["4", "5", "6"] ] const largestOfFour = arr => { return arr.map(e => { return e.sort((a, b) => b - a)[0]; }).flat(); } console.log(largestOfFour(a))

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