首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Javascript中为对象属性赋予随机属性值

在Javascript中为对象属性赋予随机属性值
EN

Stack Overflow用户
提问于 2018-12-04 03:53:24
回答 1查看 50关注 0票数 0

我正在尝试创建一个基于瓷砖的游戏,并想给每种类型的瓷砖一个随机的颜色,例如:

代码语言:javascript
复制
Game.Glyph = function(properties) {
    properties = properties || {};
    this._char = properties['character'] || ' ';
    this._foreground = properties['foreground'] || 'white';
};

Game.Tile.floorTile = new Game.Tile({
    character: '.',
});

然后假设我已经用Game.Tile.floorTile(以及其他)填充了一个map数组

代码语言:javascript
复制
for (let x = 0; x < this._width; x++) {
            for (let y = 0; y < this._height; y++) {
                if (map[x][y] == Game.Tile.floorTile) {
                    map[x][y]._foreground = ['red','yellow'].random();
            }

     }
}

这导致每个地砖要么是红色,要么是黄色,而不是随机分布。我如何给每个瓷砖一个随机的颜色,就像我在上面尝试的那样?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-04 03:58:37

如果您只想在两个值之间进行选择,则ternary可以很容易地与Math.random()相结合,后者会生成一个介于0和1之间的值:

代码语言:javascript
复制
map[x][y]._foreground = Math.random() > 0.5 ? 'red': 'yellow'

例如,使用代码的简化版本:

代码语言:javascript
复制
let map = [[{}, {}],[{}, {}]]

for (let x = 0; x < 2; x++) {
    for (let y = 0; y < 2; y++) {
            map[x][y]._foreground = Math.random() > 0.5 ? 'red': 'yellow'
    }

}
console.log(map)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53600938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档