javascript - 使用循环计数器如何动态创建对象并使用计数器命名对象?

标签 javascript

我正在尝试使用循环计数器动态创建对象。 并希望在命名对象时使用计数器本身。最终结果将是一个像这样的玩家数组:

players = [
    p1: {
        //some data like age, score etc.
    },
    p2: {
        //some data like age, score etc.
    },
    p3: {
        //some data like age, score etc.
    }
]

但是我下面的简单代码不起作用。

var numPlayers = 3;
var p;

var player = {
    rollDice : function(){
        console.log('i am rolling the dice');
        },
    age: function(){
        console.log("My name is " + this.age);
       },
    score:0
  }

for(i=0;i<numPlayers;i++){
    var p + i = Object.create(player);
    console.log('player ' + p + i + " created!");
    }

问题出在这一行:

var p + i = Object.create(player);

我尝试了各种方法让它工作

var 'p' + i = Object.create(player);

如何实现这一目标?

最佳答案

var players = {}

for(var i=0; i<numPlayers; i++){
  players['p' + i] = Object.create(player);
  console.log('player ' + ('p' + i) + " created!");
}

// var p; <-- not necessary

现在你有了一个关联的玩家数组。如果这样做,您将看到此列表的所有键:

Object.keys(players)

关于javascript - 使用循环计数器如何动态创建对象并使用计数器命名对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38668144/

相关文章:

javascript - CI - 使用 Javascript 按钮加载 Controller

javascript - 在循环下一次迭代之前,我如何等待谷歌距离调用返回我的结果

javascript - 打开 html 模式对话框

javascript - 如何在运行时添加脚本? (document.write不是函数)

javascript - Vue.js:如何对页面滚动使用react?

javascript - Chrome 应用 "Bad client id: UNSUPPORTED"

javascript - 如何在 socketio 返回中中继 PHP 函数/变量

JavaScript 重构/避免重复

javascript - 巨大网页中的名称或 ID

javascript - Firebase Storage 和 PhoneGap - 发送 Img 元素中的文件