|
@@ -16,8 +16,10 @@ const SETTING = {
|
|
|
function getOptimalSelections(odds, rules) {
|
|
function getOptimalSelections(odds, rules) {
|
|
|
const results = [];
|
|
const results = [];
|
|
|
const { obRebateRatio, hgRebateRatio } = SETTING;
|
|
const { obRebateRatio, hgRebateRatio } = SETTING;
|
|
|
- const obRebate = 1 + obRebateRatio / 100;
|
|
|
|
|
- const hgRebate = 1 + hgRebateRatio / 100;
|
|
|
|
|
|
|
+ const rebateMap = {
|
|
|
|
|
+ ob: 1 + obRebateRatio / 100,
|
|
|
|
|
+ hg: 1 + hgRebateRatio / 100,
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
rules.forEach((rule, index) => {
|
|
rules.forEach((rule, index) => {
|
|
|
let validOptions = [];
|
|
let validOptions = [];
|
|
@@ -52,7 +54,11 @@ function getOptimalSelections(odds, rules) {
|
|
|
isValid = false;
|
|
isValid = false;
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
- const best = candidates.reduce((a, b) => (item[a]-1)*obRebate > (item[b]-1)*hgRebate ? a : b);
|
|
|
|
|
|
|
+ // Logs.out('candidates', candidates)
|
|
|
|
|
+ const best = candidates.reduce((a, b) => {
|
|
|
|
|
+ return (item[a]-1)*rebateMap[a] > (item[b]-1)*rebateMap[b] ? a : b;
|
|
|
|
|
+ });
|
|
|
|
|
+ // Logs.out('best', item, best)
|
|
|
selection.push({
|
|
selection.push({
|
|
|
k: key,
|
|
k: key,
|
|
|
p: best,
|
|
p: best,
|