1

Javaスクリプトで多次元配列を検索しようとしていますが、うまくいきません。3行のうちの1つから最初の数字を入力して、行全体を取得したい。基本的に、結果が予熱配列の特定の行になるようにします。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 に答える