for函数内部的循环来查找匹配的值javascript



我有两个单选选项和一个带几个选项的select,当我选择一个选项时,我必须更改图像(数据(的url,我做了很多if来检查select的值以更改为其对应的url,但我不想重复代码,所以问题是我在关联数组中有3个不同的路径,其中索引为1,3和4,select的for循环,另一个用于路径,然后是一个变量,用于保存路径数组的索引,以便与select的值进行比较https://codepen.io/luzsdx/pen/JjKGKwd

function seleccionar() {
if (valorRadio == 'rojo') {
replaceImgRojo(classes, valorSelect)
} else if (valorRadio == 'azul') {
//same function as above but with others values
}
}
function replaceImgRojo(classes, valorSelect) {
let arrPaths = {
"../../imagenes/tratamientos/coronaExistente.svg": 1,
"../../imagenes/tratamientos/ausenteExistente.svg": 3,
"../../imagenes/tratamientos/puenteExistente.svg": 4
}
for (let select = 0; select <= valorSelect.length; select++) {
for (var key in arrPaths) {
var valuePath = arrPaths[key];
$(`div.${classes}>object`).attr('data', hereHasToBeThePath)
// if the value of valorSelect is 1 then the path has to be 1
}
}
}
}

索引之所以如此编号,是因为这些是select的值。我想要的是有一个变量,根据值保存相应的路径。我试过是if (select==valuePath),但后来我被卡住了。欢迎任何想法或建议,谢谢

翻转对象,使选择值成为关键点。然后直接索引到对象中。

function replaceImgRojo(classes, valorSelect) {
let arrPaths = {
1: "../../imagenes/tratamientos/coronaExistente.svg",
3: "../../imagenes/tratamientos/ausenteExistente.svg",
4: "../../imagenes/tratamientos/puenteExistente.svg"
}
$(`div.${classes}>object`).attr('data', arrPaths[valorSelect])
}

统一包含路由的json将帮助您避免重复代码,我不太清楚您将变量放在哪里:classes和valueSelect,所以不要将它们放在代码中,也许这会帮助您:

function seleccionarUnificado(valorRadio) {
const arrPaths = {
"rojo": {
1: "../../imagenes/tratamientos/coronaExistente.svg",
3: "../../imagenes/tratamientos/ausenteExistente.svg",
4: "../../imagenes/tratamientos/puenteExistente.svg"
},
"azul": {
1: "../../imagenes/tratamientos/coronaExistenteAzul.svg",
3: "../../imagenes/tratamientos/ausenteExistenteAzul.svg",
4: "../../imagenes/tratamientos/puenteExistenteAzul.svg"
}
}
const selectPath = arrPaths[valorRadio]
for (let select = 0; select <= valorSelect.length; select++) {
for (var key in selectPath) {
var valuePath = selectPath[key];
$(`div.${classes}>object`).attr('data', hereHasToBeThePath)
}
}
}

最新更新