2017-03-13 3 views
0

Ich muss die nächste Person in der Zeile mit dem Namen zurückgeben. Ich habe andere Versionen ausprobiert und irgendwann eine Nummer zurückgegeben, aber nicht die Zeichenfolge. Entschuldigung, neu für jetzt, aber wird eines Tages großartig sein.gibt ein verschobenes Element von einem Array-Element zurück js

function nowServing(){ 
    if (katzDeli.length > 0) { 
     return `Currently serving ${katzDeli.shift()}`; 
     } else { 
    return `There is nobody waiting to be served!`; 
    } 
    } 

Das obige überspringt das "if" und führt das "else" aus. Wenn das Array leer ist, brauche ich es, um die Else-Zeichenfolge zurückzugeben. -update- Es wirft die folgende Fehlermeldung: deli nowserving gerebloggt eine Ansage über die Person gibt es dient, und verschiebt die Zeile:.

Error: Expected 'There is nobody waiting to be served!' to equal 'Currently serving Steven.'             
    + expected - actual                                

    -There is nobody waiting to be served!                           
    +Currently serving Steven.  

Es ist in einer IDE für einen Kurs in Ich bin so Ich gebe die Werte für das Array nicht ein. Wie es liest (der Fehler) sagt es, dass es niemanden in der Linie gibt. Und nebenbei, wie kann ich Downvotes vermeiden? Ich bekomme jedes Mal eine, wenn ich eine Frage stelle. Danke

+1

es funktioniert gut. Was ist das Problem damit? –

+1

können Sie ein Beispiel für Ihr Array setzen? –

+0

Es sieht aus wie ein Problem mit Ihrer Idee. Sie könnten eine Variable für das verschobene Element verwenden und das versuchen. –

Antwort

-1

Ich hätte einen anderen Vorschlag. Array.prototype.shift() gibt undefined zurück, wenn keine Elemente mehr vorhanden sind.

function nowServing() { 
    var customer = katzDeli.shift(); 
    return `Currently serving ${customer ? customer : "nobody" }`; 
} 
0

Wenn ich den Code versuchen, es funktioniert gut:

function nowServing(){ 
    if (katzDeli.length > 0) { 
    return `Currently serving ${katzDeli.shift()}`; 
    } else { 
    return `There is nobody waiting to be served!`; 
    } 
} 

var katzDeli = ['foo', 'bar']; 
console.log(nowServing()) // Currently serving foo 
console.log(nowServing()) // Currently serving bar 
console.log(nowServing()) // There is nobody waiting to be served! 
console.log(nowServing()) // There is nobody waiting to be served! 

Falls und wenn Sie Ihre Frage aktualisieren, werde ich auch die Antwort aktualisieren.

Verwandte Themen