我有一个带有标题的输入表:内部尺寸、外部尺寸和数量。用户最多可以输入 20 个不同的实例。例如用户输入:
第 1 行 - ID = 20,OD = 30,QTY = 6
第 2 行 - ID = 10,OD = 15,QTY = 3
第 3 行 - ID = 40,OD = 52,QTY = 15
等等...
目前我正在以并行数组的形式收集所有 ID、OD 和 QTY,因此对于此示例:
IDarray = [20, 10, 40, etc...]
ODarray = [30, 15, 52, etc...]
QTYarray = [6, 3, 15, etc...]
我有一个循环遍历表格并在构建这些数组时忽略任何空白输入。所有这些都工作正常,但我希望能够根据外径 (OD) 从最大到最小对它们进行排序。看起来最好的方法是将 3 个并行数组组合成一个包含所有三个元素的对象数组,但是当输入值可以不断变化时,我似乎无法找到构建对象数组的指导不同的。我确信这是非常基本的,但我是 javascript 编码的新手,所以我正在努力解决这个问题。
我附上了我的代码片段,但我将其减少到 3 个输入以节省空间。
<script>
window.onload = function() {
$("#unit1").val(default_unit);
$("#unit2").val(default_unit);
$("#unit3").val(default_unit);
function myFunction() {
var unit1 = document.getElementById("unit1").value;
var unit2 = document.getElementById("unit2").value;
var unit3 = document.getElementById("unit3").value;
var id1 = (unit1 == 1) ? document.getElementById("id1").value:document.getElementById("id1").value / 25.4;
var id2 = (unit2 == 1) ? document.getElementById("id2").value:document.getElementById("id2").value / 25.4;
var id3 = (unit3 == 1) ? document.getElementById("id3").value:document.getElementById("id3").value / 25.4;
var od1 = (unit1 == 1) ? document.getElementById("od1").value:document.getElementById("od1").value / 25.4;
var od2 = (unit2 == 1) ? document.getElementById("od2").value:document.getElementById("od2").value / 25.4;
var od3 = (unit3 == 1) ? document.getElementById("od3").value:document.getElementById("od3").value / 25.4;
var qty1 = document.getElementById("qty1").value;
var qty2 = document.getElementById("qty2").value;
var qty3 = document.getElementById("qty3").value;
Array.prototype.clean = function(deleteValue) {
for (var i = 0; i < this.length; i++) {
if (this[i] == deleteValue) {
this.splice(i, 1);
i--;
}
}
return this;
};
var id_values = [id1, id2, id3].clean("");
var od_values = [od1, od2, od3].clean("");
var qty_values = [qty1, qty2, qty3].clean("");
alert(id_values);
alert(od_values);
alert(qty_values);
}
</script>
翻阅古今
相关分类