2016-05-17 1 views
1

Ich habe Array von verschiedenen ganzen Zahlen wie so [46, 18, 49, 15] was ich wissen möchte, wenn es eine Zahl gibt, die in der Nähe ist andere Zahlen in diesem Fall gibt es keine so muss die Funktion falsch zurückgeben, aber wenn es zum Beispiel [14, 31, 13, 40, 30] 30 und 31 sind nahe und 14 und 13 zueinander, so muss die Funktion wahr zurückgeben. danke!Finden Sie heraus in einem Array von Zahlen, wenn eine beliebige Anzahl in der Nähe einer der Zahlen im Array ist

+3

bitte * schließen * definieren, ist es nur das Delta einer? –

+1

30 und 31 sind in der Nähe, aber 15 und 16 und 13 und 14 sind nicht ...?! – deceze

+1

Sortieren Sie das Array und prüfen Sie, ob benachbarte Paare "nahe" sind. –

Antwort

2

Einfach sortieren und Delta prüfen.

function close(a) { 
 
    a.sort(function (a, b) { return a - b; }); 
 
    return a.some(function (b, i, aa) { 
 
     return i && b - aa[i - 1] <= 1; 
 
    }); 
 
} 
 

 
document.write(close([14, 31, 13, 40, 30])+'<br>'); 
 
document.write(close([46, 18, 49, 15]) + '<br>');

4

Sortieren Sie die Nummern. Dann durchlaufen Sie die Nummern und sehen Sie für jede Nummer, ob diese Zahl gleich der nächsten Zahl minus 1 ist. Wenn das der Fall ist, geben Sie true zurück. Andernfalls, wenn Sie die Schleife beendet haben, geben Sie false zurück.

+0

_diese nummer ist gleich der nächsten nummer minus 1 _...... oder ** diese nummer + 1 ist gleich der nächsten nummer **. .... + 1 wenn ich diese Frage beantworte, wo OP nichts versucht hat. – Jai

Verwandte Themen