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

112
Vistas
¿Es posible ordenar una matriz de acuerdo con el orden de clasificación obtenido al ordenar otra matriz?

Aquí tengo dos matrices en código javascript

 const array1 = [200, 455.23, -306.5, 9000, -642.21, -133.9, 79.97, 1300]; const array2 = [ '2019-11-18T21:31:17.178Z', '2019-12-23T07:42:02.383Z', '2020-01-28T09:15:04.904Z', '2020-04-01T10:17:24.185Z', '2022-04-08T14:11:59.604Z', '2022-04-10T17:01:17.194Z', '2022-04-11T23:36:17.929Z', '2022-04-13T10:51:36.790Z', ]; array1.sort((a, b) => a - b);

Aquí quiero que array2 se ordene exactamente en el mismo orden en que se ordena array1. suponga que cada elemento de ambas matrices en el mismo índice tiene que estar en el mismo índice incluso después de ordenar matriz1. En resumen, quiero ordenar una matriz. Y quiero que la otra matriz esté ordenada exactamente en el mismo orden.

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

0

Aquí va un ejemplo de cómo implementar la sugerencia anterior, donde ambos valores están en una sola matriz, como objetos, y ordenados por el valor de cada objeto en la matriz.

 const myArray = [ {date: '2019-11-18T21:31:17.178Z', value: 200}, {date: '2019-12-23T07:42:02.383Z', value: 455.23}, {date: '2020-01-28T09:15:04.904Z', value: -306.5}, {date: '2020-04-01T10:17:24.185Z', value: 9000}, {date: '2022-04-08T14:11:59.604Z', value: -642.21}, {date: '2022-04-10T17:01:17.194Z', value: -133.9}, {date: '2022-04-11T23:36:17.929Z', value: 79.97 }, {date: '2022-04-13T10:51:36.790Z', value: 1300}, ] myArray.sort((a, b) => a.value - b.value) console.log(myArray);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Primero cree una matriz de objetos literales que contenga los pares de valores. Luego use la tecla sortby para ordenar esa matriz. ¡Estás listo!

 const array1 = [200, 455.23, -306.5, 9000, -642.21, -133.9, 79.97, 1300]; const array2 = ['2019-11-18T21:31:17.178Z','2019-12-23T07:42:02.383Z','2020-01-28T09:15:04.904Z','2020-04-01T10:17:24.185Z','2022-04-08T14:11:59.604Z','2022-04-10T17:01:17.194Z','2022-04-11T23:36:17.929Z','2022-04-13T10:51:36.790Z',]; const sorted = array1.map((a1,index)=>{return {sortBy: a1, value: array2[index]}}).sort((a,b)=>a.sortBy-b.sortBy); console.log(sorted); //------------------------------------------------------- //or in a function const sortArrayByAnother = (arr, sortBy) => { return sortBy.map((a1,index)=>{return {sortBy: a1, value: arr[index]}}).sort((a,b)=>a.sortBy-b.sortBy).map((d)=>d.value); } console.log(sortArrayByAnother(array2, array1));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Para ordenar 2 o más arreglos sin combinarlos, cree un arreglo de índices ordenados según uno de los arreglos, luego reordene los arreglos según el arreglo de índices.

 const array1 = [200, 455.23, -306.5, 9000, -642.21, -133.9, 79.97, 1300]; const array2 = [ '2019-11-18T21:31:17.178Z', '2019-12-23T07:42:02.383Z', '2020-01-28T09:15:04.904Z', '2020-04-01T10:17:24.185Z', '2022-04-08T14:11:59.604Z', '2022-04-10T17:01:17.194Z', '2022-04-11T23:36:17.929Z', '2022-04-13T10:51:36.790Z', ]; // create array of sorted indexes according to array1 var index = Array.from(Array(array1.length).keys()) .sort((a, b) => array1[a] < array1[b] ? -1 : (array1[b] < array1[a]) | 0) // reorder array1, array2, index in place according to index in O(n) time var i; var j; var k; var t1; var t2; for(i = 0; i < index.length; i++){ if(i != index[i]){ t1 = array1[i]; t2 = array2[i]; k = i; while(i != (j = index[k])){ array1[k] = array1[j]; array2[k] = array2[j]; index[k] = k; k = j; } array1[k] = t1; array2[k] = t2; index[k] = k; } } console.log(array1); console.log(array2);

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