Comprimir el arreglo de opciones de Javascript
He heredado un sitio web y estoy tratando de comprimir un script mal escrito. Una sección en particular actualiza las opciones en un campo select basado en otras selecciones. Toma los valores numéricos de otros dos campos select para actualizar el número de opciones posibles en un tercer campo.
Aquí está el código en cuestión:
var value = parseInt(first_value) + parseInt(second_value);
if(value == 1){
var newOptions = {"0": "0", "1": "1",};
} else if(value == 2){
var newOptions = {"0": "0", "1": "1", "2": "2",};
} else if(value == 3){
var newOptions = {"0": "0", "1": "1", "2": "2", "3": "3",};
} else if(value == 4){
var newOptions = {"0": "0", "1": "1", "2": "2", "3": "3", "4": "4",};
} else if(value == 5){
var newOptions = {"0": "0", "1": "1", "2": "2", "3": "3", "4": "4", "5": "5",};
}
Continúa así hasta value == 30, por lo que termina siendo mucho código y estoy convencido de que hay una manera de reducirlo.
He intentado algunas soluciones por mí mismo que fallaron por completo, así que pensé que recurriría a la comunidad para ver si alguien tiene alguna idea.
davy.ai
Una forma de reducir el código sería crear un objeto vacío llamado ‘newOptions’ y luego utilizar un bucle for para añadir claves y valores basados en el valor de ‘value’. Aquí tienes un ejemplo:
Este código añadirá un par clave/valor al objeto ‘newOptions’ por cada valor desde 0 hasta ‘value’. Así que si ‘value’ es 3, creará un objeto que se verá así:
Luego puedes utilizar este objeto para actualizar las opciones en tu campo de selección.