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

84
Vistas
Números alternos en dos filas

Creo que estoy teniendo un pedo cerebral, porque no puedo encontrar una fórmula simple para poder clasificar una secuencia de números en un orden específico para que pueda imprimirse 2 números por hoja de papel (un número en un medio y segundo número en la segunda mitad), por lo que cuando la pila de papel impresa se corta por la mitad, separando los números, y luego estas mitades se juntan, los números estarían en secuencia.

Entonces, digamos que tengo 5 números: 3,4,5,6,7, el resultado esperado sería 3,6,4,7,5 o 0,1,2,3,4,5,6,7 sería convertirse en 0,4,1,5,2,6,3,7 Mi proceso de pensamiento es:

  1. crear un bucle desde 0 hasta el número total de números
  2. si el paso actual es par, entonces súmele los números totales divididos en 2

Obviamente, me estoy perdiendo un paso o dos aquí, o hay una fórmula matemática simple para esto y espero que alguien pueda guiarme en la dirección correcta.

Esto es lo que tengo hasta ahora, no funciona correctamente si el número de inicio se establece en 1 o 3

 function show() { console.clear(); for(let i = 0, count = end.value - start.value, half = Math.round(count/2); i <= count; i++) { let result = Math.round((+start.value + i) / 2); if (i && i % 2) result = result + half -1; console.log(i, "result:", result); } } //ignore below for(let i = 0; i < 16; i++) { const o = document.createElement("option"); o.value = i; o.label = i; start.add(o); end.add(o.cloneNode(true)); } start.value = 0; end.value = 7; function change(el) { if (+start.value > +end.value) { if (el === start) end.value = start.value; else start.value = end.value; } }
 <select id="start" oninput="change(this)"></select> - <select id="end" oninput="change(this)"></select> <button onclick="show()">print</button>

PD Lo siento, sobre el título, no se me ocurrió nada mejor para resumir esto.

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

0

Podría obtener el valor del índice

  • si es impar usando la longitud y el índice desplazados de uno a la derecha (como dividir por dos y obtener el valor entero), o
  • si es par por el indice dividido por dos.

 function order(array) { return array.map((_, i, a) => a[(i % 2 * a.length + i) >> 1]); } console.log(...order([3, 4, 5, 6, 7])); console.log(...order([0, 1, 2, 3, 4, 5, 6, 7]));

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