1

我正在尝试在 java 脚本中搜索一个多维数组,但我无法让它工作。我想从 3 行之一中输入第一个数字并获取整行。基本上,我希望结果是预热数组中的给定行。如果我输入 20,我希望警报给出 20、0.75、26.9、116、5、2、1、“5x3”。

警报框根本没有给我任何数字,而 chrome javascript 控制台也没有给出任何错误。我认为问题在于我如何处理结果数组。

这是html:

<head>
<script type="text/javascript" src="arraycode.js">
</script>
</head>

<body>
<table>
<tr><td>Nominal Diameter DN (mm):</td>
<td><input id="DN" onchange="tablesearch();"></td>
</table>


</body>


</html>

这是javascript:

function tablesearch(){

var preheat= [[15, 0.5, 21.3, 98, 4, 2, 1, "4x4"],
            [20, 0.75, 26.9, 116, 5, 2, 1, "5x3"],
            [25, 1, 33.7, 137, 6, 2, 1, "6x6"]];
var DN=document.getElementById("DN").value;


var result= new Array();
for (var i=0; i<preheat.length; i= i+1){
    if (preheat[i][0]===DN){
        result=preheat[i];
        break;
        }
}
alert(result);

}
4

2 回答 2

0

怎么样:

for (var i=0; i<preheat.length; i++){
 for(var j=0;j<preheat[i].length;j++){
    if (preheat[i][j]===DN){
        result=preheat[i]; //Are you after the entire array here?
        break;
        }
   }
}
于 2013-08-17T23:10:08.087 回答
0

您的问题是以下行:

if (preheat[i][0]===DN){

=== 运算符检查类型和值是否匹配。在这种情况下,输入的值是一个字符串,而数组中的值是一个整数,所以不匹配。使用 == 代替它会起作用。

于 2013-08-17T23:25:31.047 回答