Возможно ли заменить switch в данном примере?
Как по мне сделать через объекты будет более лучше для производительности,и стилистики,но не могу понять как мне это сделать с данным примером,и можно ли его оптимизировать вообще?
switch (true) {
case chanche >= 80 && chanche < 90:
win = boxes[0];
break;
case chanche >= 90 && chanche < 95:
win = boxes[1];
break;
case chanche >= 95 && chanche < 98:
win = boxes[2];
break;
case chanche >= 98 && chanche <= 99:
win = boxes[3];
break;
case chanche > 99:
win = boxes[4];
break;
default:
return;
}
Ответы (1 шт):
Автор решения: t0lik
→ Ссылка
Что-то типа такого:
function getBox(chanche) {
const checkPoints = [80,90,95,98,99]
const boxes = [1,2,3,4,5]
if (chanche > checkPoints[checkPoints.length-1]) {
return boxes[boxes.length-1]
}
for(let i = 0; i < checkPoints - 1; i++) {
if ((chanche >= checkPoints[i]) &&
(chanche < checkPoints[i+1]) {
return boxes[i]
}
}
}