当我运行下面的代码时,将数据数组作为局部变量,它工作正常。但是,当我宣布它为全局变量时,它无法正常工作。任何人都可以帮我如何将2D维数组传递到函数中。
<html>
<table>
<tr>
<select id="Ultra" name="letters" onchange="myFunction()">
<option value="0">1</option>
<option value="1">2</option>
<option value="2">3</option>
<option value="3">4</option>
</select>
</tr>
<tr>
<td id="demo">
<script>
var data = [[0,1],[1,3],[2,6]];
function myFunction(data[][])
{
var x = document.getElementById("Ultra").value;
for(i=0;i<data.length;++i)
{
if(data[i][0] == x)
{
var a = data[i][1];
}
document.getElementById("demo").innerHTML = a;
}
}
</script>
</td>
</tr>
</table>
</html>
答案 0 :(得分:1)
这是如何将2d数组传递给函数。这就像我能做到的一样简单。定义函数时没有必要定义类型(即不要data[][]
)(我认为这是你出错的地方)。
// define 2d array
var data = [[0,1],[1,3],[2,6]];
// define function
function myFunction(foobar){
// ... do something with 2d array "foobar" ...
}
// invoke function, passing in 2d array
myFunction(data);
示例:尝试using a tool like jsbin!
答案 1 :(得分:0)
您可以直接传递变量。它仍然是函数内的2D数组:
function myFunction(array) {
// code
}
myFunction([[1,2],[3,4]]);