Javascript-finden, die nächste Nummer in der Reihe, ohne unter

Ich habe ein array von zahlen, zum Beispiel [300, 500, 700, 1000, 2000, 3000] und ich möchten, finden Sie die nächste Zahl, ohne unter der Nummer gegeben.

Zum Beispiel, auf der Suche nach 2200 zurückkehren würde 3000 (NICHT 2000).

Aber, wenn Suche ich die 3200 als es gibt nichts höheres in dem array, sollte es wieder 3000, da gibt es keine andere Wahl.

Ich kann mit der nächsten Zahl, die unter dem Wert mit:

if (sizeToUse == null || Math.abs(this - monitorWidth) < Math.abs(sizeToUse - monitorWidth)) {
                sizeToUse = this;
            }

Jedoch kann ich nicht die ganze Sache zu arbeiten. Mein vollständiger code lautet:

$(function() {

var monitorWidth = window.screen.availWidth,
    sizeToUse = null,
    upscaleImages = false;

$('.responsive-img').each(function(){

    var sizeData = $(this).attr('data-available-sizes');
    sizeData = sizeData.replace(' ', '');

    var sizesAvailable = sizeData.split(',');
    sizesAvailable.sort(function(a, b){return b-a});

    $.each(sizesAvailable, function(){
        if(upscaleImages){
            if (sizeToUse == null || Math.abs(this - monitorWidth) < Math.abs(sizeToUse - monitorWidth)) {
                sizeToUse = this;
            }
        }
        else{
            //We don't want to upscale images so we need to find the next highest image available
        }

    });

    console.log('Size to use ' + sizeToUse + ' monitor width ' + monitorWidth);

});


});
  • Ist das array sortiert?
  • Könnte Sie entfernen Sie die 3/4. der code hat nichts mit der Frage zu tun?
  • Ich habe sortiert das array mit: sizesAvailable.sort(Funktion(a, b){return b-a});
  • Mögliche Duplikate von get nächste Zahl aus array
InformationsquelleAutor Amo | 2014-07-31
Schreibe einen Kommentar