繁体   English   中英

使用JavaScript将项添加到数组中的每个对象

[英]Add item to every object in array with 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
   }
];

现在我只需要为每张卡添加一个属性,即: rightAnswer: undefined

为所有卡片完成这项工作的最佳方法是什么?

for(var i=0; i<trivialPursuitCards.length; i++) {
    trivialPursuitCards[i].rightAnswer = undefined;
}

https://jsfiddle.net/o0pa4z0w/

使用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); 

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

因为添加null不是undefined更好,因为rightAnswer应该存在,但是当前没有设置。

正如Juhana所指出的那样:

默认情况下,不存在未定义的属性,因此您似乎不太可能需要明确设置它。

但是,如果您真的想这样做,可以使用Array.prototype.map()

trivialPursuitCards = trivialPursuitCards.map(element=>
  element.rightAnswer = undefined
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM