2017-07-29 8 views
1

私は["Bet:W:2:23:, "Bet:P:6:2", "Bet:W:5:3"]のデータ配列を持っています。配列からオブジェクトへのデータの配列

[0] は、[1]に置くために#6の$ 2をベット勝つために#2で$ 23賭けるなど

私はプールに賭けを追加し、プールを分割することができますので、私はデータを配置することができますどのように勝者を支持したすべての人の間で?

私は繰り返し処理とに分離しようとしました「:」。つまり、私は賭けのプールを作ることができますが、ベットと賭けの間のリンクを失うことを意味します。私はこの接続を維持するためにオブジェクトを作成する必要があると考えますが、それを行う方法を考え出すことはできませんでした。

+1

は、どのように結果が見えるだろうか? – hurricane

+1

この質問は広すぎます。 '{bet: 'win'、id: '2'、value:23}'のようなプロパティを持つオブジェクトを作成する方法のような、より簡単なものから始めて、あなたが望むどのような分布アルゴリズムで作業してください。あなたのようなそれぞれの賭けのためのオブジェクトを必要とするよう – RobG

+0

ですね:[{ベット:23、 :2、 結果:勝利}、 {ベット:2、 誰:6、 結果:場所 }] –

答えて

2

あなたはmapを探しています。

const bets = ["Bet:W:2:23", "Bet:P:6:2", "Bet:W:5:3"].map(b => { 
    const bet = b.split(':'); 
    return { 
     type: bet[1], 
     number: bet[2], 
     amount: parseInt(bet[3], 10) 
    }; 
}); 

あなたのデータはあなたがreduceを使用して、プールの量を求めるような他の有用なことを行うことができ、フォームを使用する方が簡単になったら:

const pool = bets.reduce((sum, bet) => sum + bet.amount, 0); 
0

最も簡単な方法は、JSONを使用してオブジェクトを定義し、オブジェクトの配列を作成することであろう。これはおそらくしようとしていたJSON表記である(配列に、それぞれの賭けのための値のペアプッシュそれを:各キーを使用して、このような何かを構築するだろう賭けのために、その後

var betPool = []; //defines empty object array for the betting pool 

:通常は、この形式をたどりますその形式を使用して)

{ amount: 'this.value', horse: 'this.number', condition:'this.condition' } 

あなたの例では達成するために、あなたは適切にそのキーを使用してデータを解析するためのforEach()または.eachメソッドを使用してbetPoolにアクセスすることができるはずです。

あなたはさらなる詳細が必要な場合は、私に教えてください。

0

あなたはあなたのデータは2つのことをやりたいように聞こえる:総賭けプールを追跡し、(払い出し時のような)特定の馬から(betters付き)すべてのベットを取得することができ。あなたはこれを行うためにカスタムを作ることができます。

var raceObj = {pool: 0}; 

次に、各馬のプロパティを追加して繰り返します。私は正確にあなたのニーズを予想していない可能性があり

for (var i = 0; i < arr.length; i++) { 
    var result = /^Bet:(W|P):([0-9]+):(.+)$/.exec(arr[i]); 
    var type = result[1]; 
    var horse = result[2]; 
    var bet = parseInt(result[3]); 

    raceObj.pool += bet; 
    if (!raceObj.hasOwnProperty(horse)) { 
     raceObj[horse] = {W: [], P: []}; 
    } 
    raceObj[horse][type].push(bet); 
} 

{ 
    pool: 200, 
    '5': { 
     W: [120, 40], 
     P: [25] 
    }, 
    '8': { 
     W: [15], 
     P: [] 
    } 
} 

あなたはこのような配列を反復することにより、このオブジェクトを構築することができます。たとえば、配列['Bet:W:5:120','Bet:P:5:25','Bet:W:5:40','Bet:W:8:15']から、我々は、オブジェクトを希望しますしかし、私はあなたが本当にカスタマイズされたオブジェクトを構築するだけで、これらの計算がjavascriptの素晴らしいオプションであるかのように感じる。

関連する問題