要将2D维数组作为参数传递?

时间:2015-03-03 04:29:09

标签: javascript arrays

当我运行下面的代码时,将数据数组作为局部变量,它工作正常。但是,当我宣布它为全局变量时,它无法正常工作。任何人都可以帮我如何将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>

2 个答案:

答案 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]]);