[英]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;
}
使用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.