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

128
Visualizações
Ordene la matriz 2D haciendo coincidir los últimos valores con el primero en el siguiente índice

Básicamente, tengo esta matriz

 array = [[1,0],[2,1],[0,3],[3,2]]

¿Hay algún método rápido para convertir la matriz para que se vea así?

 array = [[0,3],[3,2],[2,1],[1,0]]

Lo que quiero es que el primer elemento de la nueva matriz siempre contenga 0 en el primer lugar de la matriz anidada. Eso es bastante fácil, porque la función sort() hace exactamente eso; la parte difícil es ordenar la nueva matriz como la de arriba.

En los términos más simples, me gustaría que las matrices anidadas estén "conectadas": vea cómo el 3 de la primera matriz anidada coincide con los otros 3 a su derecha y así sucesivamente.

Siéntase libre de dejar cualquier comentario para que pueda tratar de explicar el problema un poco mejor.

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

0

Para el ejemplo que dio, la solución más fácil sería ordenar la matriz 2d por el segundo elemento de cada matriz interna, de la siguiente manera:

 let array = [[1,0],[2,1],[0,3],[3,2]]; array.sort((a, b) => b[1] - a[1]);

De esa manera, puede ordenar la matriz con el método de clasificación de acuerdo con los elementos de las matrices internas.

 let array = [[1,0],[2,1],[0,3],[3,2]]; array.sort((a, b) => b[1] - a[1]); console.log(array);

about 4 years ago · Juan Pablo Isaza Relatório

0

Mira este método:

 const array = [[1,0],[2,1],[0,3],[3,2]]; const result = [...array]; // Put the subarray with the zero element first // You can use the sort() function but I guess this method // performs better in terms of time for (let i = 0; i < result.length; ++i) { if (result[i][0] === 0) { result.unshift(...result.splice(i, 1)); break; } } // Now reorder the array so that the last index of a subarray // matches with the first index of the other subarray for (let i = 0; i < result.length; ++i) { for (let j = i + 1; j < result.length; ++j) { if (result[i][1] === result[j][0]) { // recollocate the subarray so that it matches the way we want result.splice(i + 1, 0, ...result.splice(j, 1)); break; } } } console.log(result)

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede tomar un objeto como referencia y reconstruir la matriz tomando los elementos encadenados.

 const getItems = (reference, value) => { const a = reference[value]; return a ? [a, ...(a[1] === 0 ? [] : getItems(reference, a[1]))] : []; }, array = [[1, 0], [2, 1], [0, 3], [3, 2]], reference = array.reduce((r, a) => (r[a[0]] = a, r), {}), result = getItems(reference, 0); console.log(result);

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