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

187
Visualizações
Javascript ordena los valores externos de la matriz a los valores internos

Realmente no sé cómo articular este problema, que es probablemente la razón por la que no encontré nada cuando lo busqué en Google, así que si quieres cambiar el título de esto o dirigirme a una publicación que ya hace lo que busco. estar agradecidos.

De todos modos, quiero ordenar una matriz de la siguiente manera:

 let array = [1, 2, 3, 4, 5]; let sorted = array.sort(someFunction); console.log(sorted); // -> [1, 5, 2, 4, 3] array = [1, 2, 3, 4]; sorted = array.sort(someFunction); console.log(sorted); // -> [1, 4, 2, 3]

¿Ves cómo toma primero los elementos más externos (1 y 5), luego pasa al siguiente nivel más cercano (2 y 4) y luego termina con el elemento central al final (3)? Eso es lo que quiero.

Obviamente, es preferible una solución que use Array.sort() (o un enfoque funcional similar de una sola línea), pero tomaré cualquier cosa que logre esta tarea en este punto.

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

0

1) Puede lograr fácilmente la solución usando shift y pop

 function getValue(arr) { const result = []; while (arr.length) { result.push(arr.shift()); if (arr.length) result.push(arr.pop()); } return result; } let array = [1, 2, 3, 4, 5]; console.log(getValue(array));

2) También puedes hacer esto usando un algoritmo two-pointer

 function getValue(arr) { const result = []; let start = 0, end = arr.length - 1; while (start < end) result.push(arr[start++], arr[end--]); if (start === end) result.push(arr[start]); return result; } console.log(getValue([1, 2, 3, 4, 5])); console.log(getValue([1, 2, 3, 4])); console.log(getValue([1, 2, 3]));
 /* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Prueba esto:

 let array = [1, 2, 3, 4, 5]; let l = array.length; let mid = parseInt(l/2); let sorted = []; if (l > 2) { for (let i = 0; i < mid; i++) { sorted.push(array[i]); sorted.push(array[li-1]); } } else sorted = array; if ((l % 2) != 0) { // add the mid element of the array to the end. sorted.push(array[mid]); } console.log(sorted);

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