2017-06-15 7 views
0

私は「questions」という名前の配列を持っていますが、オブジェクト変数には「choices」という名前の配列もあります。配列オブジェクトの配列

var questions = [ 
{ 
question: "What type of business do you run?", 
choices: ['Business to Business - Provide products and/or services to other 
     businesses', 'Business to Business to Consumer - Provide products 
     and/or services to other businesses for consumers', 
     'Business to Consumer - Provide products and/or services to 
     consumers'], 
choiceValues: [1, 2, 3], 
} 

以下のように、forループで 'choices'の長さを使用したいと思います。この構文は正しいですか?私は 'ポイント'変数が増加するように見えることはできません。

function displayScore() 
{ 
var score = $('<p>',{id: 'question'}); 
var points = 0; 
for (var i = 0; i < selections.length; i++) 
{ 
    for (var j = 0; j < questions[i].choices.length; j++) 
    { 
     if (selections[i] === questions[i].choices[j]) 
     { 
      points = points + questions[i].choiceValues[j]; 
     } 
    } 
} 
score.append('You got ' + points + ' points!'); 
return score; 
} 

[選択肢]の例は[0,4,0,1,0,1,0,1]です。

+0

あなたが確認したものを '質問[I] .choices [j] 'は?それはあなたが期待しているものと一致しますか?また、「選択」とは何ですか? – Carcigenicate

+0

@Carcigenicate 'selections'は、質問に対するユーザーの回答を含む配列です。私は内側のforループを使用して、リストから回答が一致するかどうかを確認しています。どの回答が一致するかに基づいて、 'choiceValues'によって定義された特定の数の点が割り当てられます。 –

+0

'selections'の例を提供します – luisenrike

答えて

0

問題はselections[i]number(0)questions[i].choices[j]string('Business to Business - Provide products and/or services to other businesses')ですので、if (selections[i] === questions[i].choices[j])は(常にfalse)は動作しませんということです。

あなたが選択したインデックスのための代わりに確認することができます。

if (selections[i] === j) 
{ 
    points = points + questions[i].choiceValues[j]; 
} 

また、インナーforは無用である、あなたがこれを行うことができます:

function displayScore() 
{ 
    var score = $('<p>',{id: 'question'}); 
    var points = 0; 
    for (var i = 0; i < selections.length; i++) { 
     points += questions[i].choiceValues[selections[i]]; 
    } 
    score.append('You got ' + points + ' points!'); 
    return score; 
} 
+0

ありがとう、それは働いた。 –

+0

お手伝いいただきありがとうございます。また、スタックオーバーフローを歓迎します。この回答または他の誰かがあなたの問題を解決した場合は、それを合格とマークしてください。 – luisenrike

関連する問題