javascript:将数组传递给函数

时间:2012-10-27 01:13:34

标签: javascript arrays function

这是我的javascript代码:

var my_array = new Array();
my_array[0] = "a";
my_array[0] = "b";
my_array[0] = "c";

print_array(my_array);

function print_array(arr)
{
   alert(arr);
}

但它不起作用,因为我无法将数组传递给函数。那么,我怎样才能将整个数组传递给javascript函数?

修改 没关系。我找到了解决办法 隐藏的原因这是不好的做法,并将数组作为字符串传递:

  

如果有人需要将数组传递给函数,请首先使用:JSON.stringify()和javascript将能够解析数组。

8 个答案:

答案 0 :(得分:7)

问题是您要将每个元素分配到索引0,因此它们会相互覆盖。

// should be
my_array[0] = "a";
my_array[1] = "b";
my_array[2] = "c";

// alternatively, if you don't want to track the index
my_array.push("a");
my_array.push("b");
my_array.push("c");

其余代码看起来很好。您可以按照您在代码中显示的方式将整个数组或任何对象传递给函数。

当你提醒它时,javascript会将数组连接成一个逗号分隔的字符串,以便于查看。

答案 1 :(得分:2)

请尝试使用此代码:

function print_array(arr)
{
   alert(arr);
}

var my_array = new Array();
my_array[0] = "a";
my_array[1] = "b";
my_array[2] = "c";

print_array(my_array);

您应该先定义一个函数,然后才能将其称为良好的编程习惯。

另请注意正在分配的元素的顺序,您将所有内容放在0上,它们应该在1,2等上。

答案 2 :(得分:1)

扩展Billy Moon's answer

您可以像这样定义数组:

my_array = ["a", "b", "c"];

就像这样:

my_array = [];
my_array[0] = "a";
// ...

答案 3 :(得分:0)

var my_array = ["a", "b", "c"];
// or a popular way to define (mainly string) arrays:
var my_array = "abc".split("");

print_array(my_array);

function print_array(arr) {
   alert(arr);
}

答案 4 :(得分:0)

您使用的是相同的索引0

var my_array = new Array();
my_array[0] = "a";
my_array[1] = "b";
my_array[2] = "c";

JS Fiddle

答案 5 :(得分:-1)

  • 您在定义之前调用了该函数。使用前先定义它。尽管JS已经“悬挂”了,但以这种方式编码是一种很好的做法。避免验证器(如JSLint)错误,
  • 使用console.log查看对象,而不是使用alert
  • 此外,最好使用文字符号:

总而言之,这是一个更简化的代码:

var myArray = ['a','b','c'];

function print_array(arr){
    console.log(arr);
}

print_array(myArray);

答案 6 :(得分:-1)

请注意

function FollowMouse()
{
    var len = arguments.length;
    if(len == 0) return;
    //
    for(var i=0; i< len; i++)
    {
        arguments[i].style.top = event.clientY+"px";
        arguments[i].style.left = event.clientX+"px";
    }

};

// ---------------------------

html page

<body onmousemove="FollowMouse(d1,d2,d3)">

<p><div id="d1" style="position: absolute;">Follow1</div></p>
<div id="d2" style="position: absolute;"><p>Follow2</p></div>
<div id="d3" style="position: absolute;"><p>Follow3</p></div>


</body>

可以使用任何Args调用函数

<body onmousemove="FollowMouse(d1,d2)">

<body onmousemove="FollowMouse(d1)">

答案 7 :(得分:-1)

$("#submitValues").bind('click', function(e){
    var formData[];

    $("#orderForm").each('input[^="-id"]', function(){
         formData.push($(this).val());
    });

   $.ajax({
      url: 'index.php',
      data: formData
   }).success(function(response){
       $("totalAmount").val(response.returnedTotalAmount);
       $("totalPrice").val(response.returnedTotalPrice);
   }).fail(function(response){
      /* do something else */
   });

 e.preventDefault();
 });

fiddle