2016-05-21 7 views
1

私は一種のトリビアル追求ゲームを作っています。私には何千もの質問と回答があります。 rightAnswer: undefined:今、私はちょうどすなわち、各カードに1つのより多くのプロパティを追加する必要がありますJavaScriptを使用して配列内のすべてのオブジェクトにアイテムを追加します。

var trivialPursuitCards = [ 
    { 
    question: "What nationality was Chopin?", 
    answer: ["American", "Polish", "German", "Czech"], 
    difficulty: 2 
    }, 
    { 
    question: "Who cut Van Gogh's ear?", 
    answer: ["His sister", "His brother", "Himself", "He was born that way"], 
    difficulty: 2 
    } 
]; 

:以下の例を参照してください。

これをすべてのカードで行うには、どのような方法が最適ですか?

+3

非既存のプロパティは、デフォルトでは未定義です。 – JJJ

答えて

1

使用mapその後、あなたの財産を追加します -

var trivialPursuitCards = [{ 
 
    question: "What nationality was Chopin?", 
 
    answer: ["American", "Polish", "German", "Czech"], 
 
    difficulty: 2 
 
}, { 
 
    question: "Who cut Van Gogh's ear?", 
 
    answer: ["His sister", "His brother", "Himself", "He was born that way"], 
 
    difficulty: 2 
 
}]; 
 

 
var update = trivialPursuitCards.map(function(e, i) { 
 
    e.rightAnswer = undefined; 
 
    return e; 
 
}); 
 

 
console.log(update);

0

trivialPursuitCards.map(function (card) { card.rightAnswer = null; });

それはを追加する方が良いでしょうのでrightAnswerが存在するはずですが、現在は設定されていないため、よりundefinedです。

0

としてはJuhanaが指摘:それはあなたが明示的に設定する必要があるだろうとは考えにくいので、

非既存のプロパティは、デフォルトでは未定義です。

あなたが本当にこれを実行したい場合は、Array.prototype.map()を使用することができます:それはあなたが明示的に設定する必要があるだろうとは考えにくいので、

trivialPursuitCards = trivialPursuitCards.map(element=> 
    element.rightAnswer = undefined 
) 
関連する問題