/ / Wie sortiere ich nach engsten Zahlen in anglejs - anglejs

Wie sortiere ich nach den nächsten Zahlen in angularjs? - angularjs

Ich habe einen Json mit Zahlen und ich möchte sortierendiese Zahlen werden mithilfe von anglejs durch die nächstgelegene Position zu der angegebenen Nummer verwendet. Zum Beispiel: Mein Array enthält die Nummern 1,2,3,4,5. Ich möchte sie bei 4 bestellen. Ich möchte sie als 4,3,5,2,1 anzeigen (weil 3 und 5 4 und danach 2 und 1 am nächsten sind.

Hat jemand eine Idee?

Antworten:

1 für die Antwort № 1

Sie müssen das verwenden Array.sort Methode. Hier ist ein Algorithmus, der Ihren Bedürfnissen entspricht:

var closestTo = 4;
array.sort(function(a, b) {
if (a == closestTo) {
// a is 4, so must be in first position
return -1;
} else if (b == closestTo) {
// b is 4, so must be in first position
return 1;
}
var deltaA = Math.abs(closestTo - a);
var deltaB = Math.abs(closestTo - b);
if (deltaA == deltaB) {
// a and b are at same distance from 4, so use numerical order
return a - b;
} else if (deltaA < deltaB) {
// if a is at a smaller distance, it should be before b
return -1;
} else {
// b is at a smaller distance, it should be before a
return 1;
}
});

Weitere Details unter https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort