2017-02-09 6 views
0

配列をとる関数を作成したいと思います。配列が空の場合(または=== 0)、私は1つの文字列を返したいと思います。配列が空でない場合は、別の文字列を返す+ remove +配列の最初の要素を返す。これをどのように達成するのですか?2 if文に依存する関数の戻り値は? (JS)

サンプル

> function(ary) { 
> if (ary.length === 0) { 
>-return string- 
>} 
>else {return other string + ary.shift[0]} 
>} 
+0

コード罰金のようです。どのような問題が発生しましたか? – MaxZoom

+0

そして、質問は? – John3136

+0

@MaxZoomどのような状況でも、私は他人になれませんでした。最初の文字列が返されました。 – jsc42

答えて

1

は1つのshift補正であなたのコードです::このよう

function check(ary) { 
 
    if (ary.length === 0) { 
 
    return "empty"; 
 
    } else { 
 
    return "First was the " + ary.shift() 
 
    } 
 
} 
 

 
console.log(check([])); 
 
console.log(check(['word', 'chaos', 'light']));

1

shiftには、パラメータを取らない機能です。 elseを除去することができることを

function(ary) { 
    if (ary.length === 0) { 
     return "string"; 
    } 
    else { 
     return "other string" + ary.shift(); 
    } 
} 

:このように呼ばれるべきです。 aryの長さが0の場合、ifのコードは(if本体内のreturnのため)決して届かないので、コードはelseでアンラップされたままになる可能性があるため、返信文で十分です。以下は

function(ary) { 
    if (ary.length === 0) // remove the braces as well since the `if` body is just one statement 
     return "string"; 
    return "other string" + ary.shift(); // if `if`'s test is true this line will never be reached 
}