javascript - 如何在每个 for 循环中使用每个数组值(相同数量)
问题描述
我有以下名为equipos_seleccionados的数组
["12 - v4", "100 - v500"]
这是前端的样子:
如您所见,我会自动生成与头部输入值一样多的文本框。
目标:我想(在这种情况下)将值12 - v4用于前 2 个元素(选择),将值100 - v500用于接下来的 4 个元素(选择)。
这是我到目前为止的代码:
result["cantidad_seriado"].forEach(function(entry) {
for (var i = 0; i < entry; i++) {
div_hr1.append("<select class='form-control' id='selected_equipo_seriado' name='selected_equipo_seriado' required='required' disabled><option selected value=''>" + equipos_seleccionados + "</option></select><br>");
div_hr2.append(`
<input class="form-control" id="nro_serie_seriado" name="nro_serie_seriado" type="number" required="required" placeholder="Nro de serie"><br>
`);
};
div_hr1.append(`
<hr class="sidebar-divider" style="border-color:blue;">
`);
div_hr2.append(`
<hr class="sidebar-divider" style="border-color:blue;">
`);
});**
它应该是这样的:
解决方案
您可以通过使用forEach函数索引的重载仅打印与result["cantidad_seriado"]相同位置的equipos_seleccionados中的元素。
你只需要改变.forEach(function(entry))
for.forEach(function(entry, index))
var equipos_seleccionados = ["12 - v4", "100 - v500"]
div_hr1 = document.getElementById('div_hr1')
div_hr2 = document.getElementById('div_hr2')
var result = ["2", "3"]
result.forEach(function(entry, index) {
console.log(entry)
for (var i = 0; i < entry; i++) {
div_hr1.innerHTML += "<select class='form-control' id='selected_equipo_seriado' name='selected_equipo_seriado' required='required' disabled><option selected value=''>" + equipos_seleccionados[index] + "</option></select><br>"
div_hr2.innerHTML += `
<input class="form-control" id="nro_serie_seriado" name="nro_serie_seriado" type="number" required="required" placeholder="Nro de serie"><br>
`
}
div_hr1.innerHTML += `
<hr class="sidebar-divider" style="border-color:blue;">
`
div_hr2.innerHTML += `
<hr class="sidebar-divider" style="border-color:blue;">
`
});
<div id="div_hr1" style="width=50%; display:inline-block;"></div>
<div id="div_hr2" style="width=50%; display:inline-block;"></div>
当您的两个阵列以相同的顺序出现时,此方法有效,在这种情况下,“2”用于“12 - v4”,“3”用于“100 - v500”。如果您不想依赖两个数组中项目的顺序,则可以使用基于字典的结构而不是该数组,因此您可以使用以下内容:
var quantityPerEquipment = { "12 - v4": 2, "100 - v500": 3 }
var equipos_seleccionados = ["12 - v4", "100 - v500"]
div_hr1 = document.getElementById('div_hr1')
div_hr2 = document.getElementById('div_hr2')
Object.keys(quantityPerEquipment).forEach(function(entry) {
console.log(entry)
for (var i = 0; i < quantityPerEquipment[entry]; i++) {
div_hr1.innerHTML += "<select class='form-control' id='selected_equipo_seriado' name='selected_equipo_seriado' required='required' disabled><option selected value=''>" + entry + "</option></select><br>"
div_hr2.innerHTML += `
<input class="form-control" id="nro_serie_seriado" name="nro_serie_seriado" type="number" required="required" placeholder="Nro de serie"><br>
`
}
div_hr1.innerHTML += `
<hr class="sidebar-divider" style="border-color:blue;">
`
div_hr2.innerHTML += `
<hr class="sidebar-divider" style="border-color:blue;">
`
});
<div id="div_hr1" style="width=50%; display:inline-block;"></div>
<div id="div_hr2" style="width=50%; display:inline-block;"></div>
这将确保您的元素始终匹配。
推荐阅读
- javascript - 从站点自动安装扩展?
- python - 使用 activate_this 激活 venv 时无法导入 numpy
- sql-server - 使用 FOR XML PATH 连接字符串
- c++ - 当我不应该有该类的容器时如何从继承的类中存储对象
- git - "git diff-index --name-only HEAD" 报告windows下的文件,而不是cygwin下的
- ios - 当我按下回车键时,keyboardWillShowNotification 被触发(仅在我第一次按下它时)
- ios - SCNMaterial 中的图像纹理始终为灰色。如何应用颜色?
- tensorflow - TensorFlow 对象检测:导出推理图
- sas - SAS:用新级别“其他”替换变量中的稀有级别
- mongodb - 在 Mongo DB 的嵌套地图对象模式中选择特定字段