使用循环计数器如何动态创建对象并在命名对象时使用计数器
Using a loop counter how can I dynamically create objects and use the counter in naming the objects?
我正在尝试使用循环计数器动态创建对象。并希望在命名对象时使用计数器本身。最终的结果将是一系列这样的玩家:
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字典
如何在Javascript 中动态创建字典和添加键值对
我建议您使用字典,因为您可以基于字符串(如"p1")进行引用,而不是仅使用int索引(如0)此外,我不熟悉"Object.create()",但我认为当播放器已经是一个对象时,这是没有必要的。
这是我所拥有的:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<style>
</style>
<title>Something</title>
</head>
<body>
</body>
<script>
new player={}
var numPlayers = 3;
var oneplayer={
rollDice : function(){
console.log('i am rolling the dice');
},
age: function(){
console.log("My name is " + this.age);
},
score:0
}
var count =1
function dictionary(numPlayers){
tempkey='p'+count
player.push({key: , value: oneplayer})
count=count+1
}
</script>
</html>
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- JQuery使计数器每次更改时都会增加
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- 在对象中查找值时,对于循环计数器
- 根据循环中的计数器创建具有唯一名称的 JavaScript 对象
- 如何递增计数器并将结果附加到字符串中以返回对象名称
- 如何通过原型使对象计数器
- 如何将循环计数器作为对象属性传递
- 如何按对象限制Javascript计数器变量的作用域?
- Javascript for循环使用对象而不是计数器
- 将数组元素指定为对象属性,使用'计数器'值
- 如何在xhttp对象从XML获取数据时显示进度计数器
- 在switch()中使用JavaScript动态对象创建计数器
- 使用循环计数器如何动态创建对象并在命名对象时使用计数器