我对Javascript很新,但我想创建一个游戏。在游戏中,每当用户玩或完成某个级别时,他们将累积积分(有点像成就或徽章)。我需要编写一种算法,不仅可以跟踪用户的积分,还可以在他们完成一个动作和/或获得必要的积分后为他们分配正确的徽章。
我正在考虑为每个玩家创建一个User对象,其中包括'name','points'等属性,以及列出玩家到目前为止获得的徽章的数组。徽章本身也将是对象,并且将存在描述等级的某些属性。
是否可以在Javascript中将对象推入另一个对象内?例如:
var daniel = {
userName: "Daniel White",
userPoints: 1250,
userBadges = [ 'Bronze', 'Silver' ],
}
var goldBadge = {
badgeName: "Gold",
minWeight: 1250,
}
注意:'minWeight'属性声明用户必须至少有1250分才能获得该徽章。
我可以通过将goldBadge推送到数组userBadges来将金徽章分配给用户Daniel吗?或者我是不是错了?
答案 0 :(得分:1)
我可以通过将goldBadge推送到数组userBadges来将金徽章分配给用户Daniel吗?或者我是不是错了?
是的,在javascript中可以有一个不同类型的数组。在这种情况下:
Lars Schwarz There are no options you could specify or even change.
The build-in NLP is only meant as simple integration,
if you need extended options you need to integrate the calls yourself.
答案 1 :(得分:0)
是的,您可以push
将其userBadges
设置为var daniel = {
userName: "Daniel White",
userPoints: 1250,
userBadges = [ 'Bronze', 'Silver' ],
}
daniel.userBadges.push({
badgeName: "Gold",
minWeight: 1250,
})
。
像这样:
var daniel = {
userName: "Daniel White",
userPoints: 1250,
userBadges : ['Bronze', 'Silver']}
var goldBadge = {
badgeName: "Gold",
minWeight: 1250}
daniel.userBadges.push(goldBadge)
答案 2 :(得分:0)
我可以通过将goldBadge推送到数组userBadges来将金徽章分配给用户Daniel吗?或者我是不是错了?
我会说......对两者都是。你完全可以将黄金推到徽章上(其他答案显示如何这样做),但如果点是徽章的唯一决定因素,那么只需创建一个取整数并返回徽章数组的函数:
const badges = [["gold", 1250], ["silver", 1000], /* etc */];
const getBadgesByScore = score => {
return badges
.filter(([name, thres]) => score >= thres)
.map(([name] => name);
};
getBadgesByScore(daniel.score); // ["gold", "silver"...
使用对象属性可能在概念上很简单,但您需要存储大量重复数据。
答案 3 :(得分:-1)
只需使用push
方法
var daniel = {
userName: "Daniel White",
userPoints: 1250,
userBadges: ['Bronze', 'Silver']
}
var goldBadge = {
badgeName: "Gold",
minWeight: 1250
}
daniel.userBadges.push(goldBadge);
console.log(daniel)