Javascript: sort () 2 matriz unidimensional

votos
1

Tengo una matriz de dos dimensiones, donde la primera es la distancia y la segunda es el objeto:

[distance][object]

Necesito ordenar por distancia - Estoy intentando algo como esto, pero doesn `t trabajo, alguien podría ayudarme?

lista.sort((a, b) => {return a-b});

y

let t = lista.sort(sortFunction);

sortFunction(a, b) {
    if (a[0] === b[0]) {
        return 0;
    }
    else {
        return (a[0] < b[0]) ? -1 : 1;
    }
}
Publicado el 07/11/2018 a las 22:34
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
2

Si entiendo bien su pregunta, el siguiente debe trabajar para usted - la idea aquí es llamar .sort()a la "matriz externa" del conjunto de datos en dos dimensiones, y pasar una función de comparación que pone a prueba el primer elemento (es decir, los datos de distancia) de cada elemento que se comparan:

var data = [
  [22, { object : 22 }],
  [10, { object : 10 }],
  [3, { object : 3 }],
  [50, { object : 50 }]
]

console.log('unsorted:', data)

data.sort((a, b) => {
  return a[0] - b[0]
})

console.log('sorted:', data)

Respondida el 08/11/2018 a las 01:19
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more