2016-07-29 11 views
0

ループカウンターを使ってオブジェクトを動的に作成しようとしています。 そして、オブジェクトの命名にカウンター自体を使用します。最終結果は、このような選手の配列になります:ループカウンタを使用すると、どのようにオブジェクトを動的に作成し、そのオブジェクトの名前付けにカウンタを使用できますか?

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

しかし、私の簡単なコードは動作していません。私はそれがこれが達成できるか

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

のように動作させるためのさまざまな方法を試してみた

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

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!"); 
    } 

問題は、このラインのですか?

+0

:ここ

は私が持っているものです。 – SLaks

+0

これは大丈夫ですよ、ありがとう – TopTomato

+0

@Boaz:いいえ;単に数値を使用します(ゼロベースにします)。 – SLaks

答えて

1
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) 
+0

はうまく動作します、ありがとうございます – TopTomato

+0

問題はありません:)そのいくつかが不明かどうか質問してください – jonathanGB

0

編集:あなたがこれを行う場合は、このリストのすべてのキーが表示されます重複した 参考のために申し訳ありませんが、私は辞書を考えるだけではないよと思われる: Append values to javascript dictionary

How to create dictionary and add key value pairs dynamically in Javascript

あなたはint型(のような0)されているインデックス付きのみ(P1「」のような)文字列ではなく、に基づいて参照することができますので、私は)また、私は「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> 
関連する問題