2017-03-13 17 views
0

次の人を名前で一行だけ返す必要があります。私は他のバージョンを試して、ある時点で数字を返しましたが、文字列は返しませんでした。申し訳ありません、今は新しいですが、素晴らしい一日になります。配列要素からシフトされた要素を返すjs

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

上記の「if」をスキップし、「else」を実行しています。配列が空の場合は、else文字列を返す必要があります。 -update- これは、次のエラーがスローされます:それはサービスを提供している人についての発表を返し、ラインをシフトnowservingが デリ:

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.  

それは私がでてるのコースのためのIDEであるので。私は配列の値を入力しません。読んでいる(エラー)ので、その行に誰もいないと言います。また、脇の下に、どうすれば下降音を避けることができますか?私は質問をするたびに1つを得るようです。 ありがとう

+1

正常に動作しています。何が問題なの? –

+1

あなたはあなたの配列の例を挙げることができますか? –

+0

あなたのIDEに問題があるように見えます。シフトされた要素に変数を使用し、それを試すことができます。 –

答えて

-1

私は別の提案があります。要素が残っていない場合、Array.prototype.shift()はundefinedを返します。

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

私は、コードをしようとすると、それが正常に動作します:

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! 

あなたがあなたの質問を更新したときに行うと、私も答えを更新します場合。

関連する問題