我有一个数组数组,其数组是["Bet:W:2:23:, "Bet:P:6:2", "Bet:W:5:3"]
。将数组中的数据排列到对象中
[0]下注$ 23#2赢 [1]下注$ 2#6放置等
我如何安排数据,以便我可以添加投注池,然后划分池谁支持赢家?
我已经尝试迭代和分离':'。这意味着我可以创建投注池,但这意味着我失去了投注和他们下注的马匹之间的联系。我假设为了保持这种联系,我需要创建一个对象,但我一直无法解决如何做到这一点。
我有一个数组数组,其数组是["Bet:W:2:23:, "Bet:P:6:2", "Bet:W:5:3"]
。将数组中的数据排列到对象中
[0]下注$ 23#2赢 [1]下注$ 2#6放置等
我如何安排数据,以便我可以添加投注池,然后划分池谁支持赢家?
我已经尝试迭代和分离':'。这意味着我可以创建投注池,但这意味着我失去了投注和他们下注的马匹之间的联系。我假设为了保持这种联系,我需要创建一个对象,但我一直无法解决如何做到这一点。
最简单的方法是使用json定义对象,并创建一个对象数组。通常,您将遵循以下格式:
var betPool = []; //defines empty object array for the betting pool
然后为每个敢打赌,你会使用键构造是这样的:值对每次下注,推它的阵列(这是你可能尝试JSON符号使用该格式在你的例子来实现)
{ amount: 'this.value', horse: 'this.number', condition:'this.condition' }
,你应该能够使用foreach()或。每个方法适当地使用它的关键分析数据访问您的betPool。
让我知道你是否需要进一步阐述。
这听起来像是你希望你的数据做2件事:跟踪总的投注池,并能够从任何特定的马(如支付时间)检索所有投注(与更高)。你可以自定义一个对象来做到这一点。
var raceObj = {pool: 0};
然后迭代通过为每匹马添加属性。例如,从阵列['Bet:W:5:120','Bet:P:5:25','Bet:W:5:40','Bet:W:8:15']
我们想的对象:
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: []
}
}
您可以通过遍历数组像这样在建立这个对象,但我觉得如果你只是一次这些计算,那么构建一个真正定制的对象是一个很好的选择在JavaScript中。
如何将结果看? – hurricane
这个问题太广泛了。从比如'{bet:'win',id:'2',value:23}'等属性创建一个对象开始,然后处理你想要的任何分配算法。 – RobG
这听起来像你需要一个对象像每次下注:[{赌注:23, 谁:2, 结果:赢}, {投注:2, 谁:6, 结果:将 }] –