Wenn ich habe ein Array wie folgt aus:Formaler Weg zum Erhalten der nächsten Werte im Array in Javascript, bei einem gegebenen Wert und einem sortierten Array?
var array = [1, 3, 4, 5, 9, 10];
Und ich habe einen Wert wie folgt aus:
var value = 8;
Ich möchte dieses Ergebnis erhalten:
var result = getClosestValues(array, value); // [5, 9]
Was die richtige ist/bevorzugte Möglichkeit, dies in Javascript zu tun? Es scheint, dass dies wahrscheinlich irgendwo ein formeller Algorithmus ist. Vielleicht so:
var getClosestValues = function(array, value) {
var low, high = 0, value;
for (var i = 0; i < array.length; i++) {
if (low <= value && low < array[i])
low = array[i];
if (high == value && high < array[i])
high = array[i];
};
return [low, high];
}
Vielen Dank!
was ist, wenn es eine 8 im Array gibt .. sollte es nur zurückgeben? –
Suchen Sie nach den 2 nächsten Werten oder den nächsten Werten auf beiden Seiten von 'value'. Zum Beispiel, wenn 'value = 6' sollte es' [4,5] 'oder' [5,9] 'zurückgeben? –
Wird das Array garantiert sortiert? –