2016-05-16 8 views
-1

問題を処理中です。私はこの問題を解決するために質問する正しい質問を知らない。私は必要な結果が得られているように思っていますが、ソリューションの検証問題は機能しません。私はそれを正しく解決しているかどうかはわかりません。基本的には配列が与えられていて、特定の成分をスライスして配列から要素を除外しなければなりません。異なる配列をスライスして選択した値を返す

質問:「使用している要素のみを使用するように、冒頭から取得した要素の配列のスライスを作成する必要があります。命令は何も言わない、我々は最初の要素を取るだけです。

var hammerIngredients = ['iron', 'granite', 'copper']; 
var spearIngredients = ['iron', 'granite', 'copper']; 
var panIngredients = ['iron', 'granite', 'copper']; 
take(hammerIngredients); // returns ['iron'] 
take(spearIngredients, 2); // returns ['iron', 'granite'] 
take(panIngredients, 3); // return ['iron', 'granite', 'copper'] 

「命令が列挙された要素よりも多くを使用することを言えば、私たちは、アレイ内のすべての要素を使用しています。命令が要素を使用しないように言えば、私たちは空の配列を返します。」

var plateIngredients = ['iron', 'granite', 'copper']; 
take(plateIngredients, 0); // returns [] 

私はプログラムを実行しようとしており、以下を行っています。それは動作するように見えますが、私がそれを検証しようとすると、無効であるとわかります。

function take(ingredients, slicer) { 

if (arguments.length === 1) { 
    slicer = 1; 
} 
if (ingredients === hammerIngredients){ 
    return ingredients.slice(0, slicer); 
} else if(ingredients === spearIngredients) { 
    return ingredients.slice(0,slicer); 
} else if (ingredients === panIngredients) { 
    return ingredients.slice(0,slicer); 
} else if (ingredients === plateIngredients) { 
    return ingredients.slice(0,slicer) 
} else { 
    return; 
} 
} 

そして、私には理由が分かりません。助けてください!

答えて

1

slicerパラメータが0の場合はロジックがありません。この場合、空の配列を返す必要があります。

そこにこのラインを入れて、それはあなたが与えた要件に基づいて、動作する必要があります。これら3つの正確なアレイのうちの1つが使用されている場合

if (slicer === 0) { 
    return []; 
} 
+0

スライサー= 0の場合、私はちょうど最初の要素ではない空の配列を返す必要があります。 – JonathanMitchell

+0

投稿した例では、ゼロのスライサーは空の配列を返します... take(plateIngredients、0); // returns [] – JordanHendrix

+0

はい、スライサーがないと、最初の要素だけを取ることになります。ハンマーでは、どちらが鉄としか呼べないのでしょうか? – JonathanMitchell

0

あなたのコードは、現在のみ動作します。確認コードでは、これらの配列のみを作成して使用しますか?

あなたのコードは、既存の成分アレイに結びつける必要はありません。デフォルトのスライサーの値を設定した後、あなただけのことができます。

return ingredients.slice(0,slicer); 
+0

彼らは異なる量のスライスを除いて、彼らはすべて同じことをします。 – JonathanMitchell

+0

スライサーのロジックを使って、スライスしなければならない量を変えることができます。ハンマー、スピア、パン、プレートのためだけにしなければならないと思います。 – JonathanMitchell

+0

私はそれが "パン" + "成分"または "ハンマー" + "成分"になることを意味します。私はこれを解決するより良い方法があるかどうかを判断しようとしています。 – JonathanMitchell

関連する問題