Tengo un problema con una función que devuelve un premio específico. El premio está vinculado a la puntuación de SEO de una página web. Cada página web tiene unas condiciones específicas que se deben cumplir para que podamos obtener el premio por colocar la palabra en el top 10 de Google. El premio que se define aquí es un acuerdo de una sola vez, por eso debe ejecutarse solo una vez y nunca más una vez que se completan los objetivos.
Si la meta del premio es verdadera, entonces el premio es 3000. El problema es que este premio es un trato único. Entonces, cuando se completa este objetivo y el usuario obtiene el premio 3000, eso es todo. Si la próxima vez se vuelve a alcanzar la meta, el premio 3000 no se calcula para el premio. Para que el objetivo sea cierto, la variable "st" (el número de palabras que llegaron a la primera página en google) debe ser 15 o igual y menor que 20. El segundo premio se otorga si "st" es mayor o igual que 20. Ambos pueden ocurrir solo una vez, o ambos al mismo tiempo. Digamos que no se alcanza el primer objetivo (cal o mayor de 15, pero menor de 20), y si "st" es 21, ambos premios se calculan (por lo tanto, 6000) una vez y nunca más. Por ahora tengo dos variables globales que tienen un valor falso, y luego las sentencias if else para devolver el premio.
var prize1= false; var prize2= false; if (st >= 15 && st < 20) { prize1= true; if (prize1) { return 3000; } } else if (st <= 20 && prize1) { prize2= true; if (prize2) { return 3000; } } else if (st <= 20 && !prize1) { prize2= true; if (prize2) { return 6000; } }El problema es que esto sucede cada vez que se completa el objetivo y no solo una vez.