1

这是我的 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 将能够解析数组。

4

7 回答 7

8

问题是您将每个元素分配给 index 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 会将数组连接成一个逗号分隔的字符串,以便于查看。

于 2012-10-27T01:15:39.493 回答
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 上等等。

于 2012-10-27T01:14:59.913 回答
1

扩展比利·穆恩的答案

你可以像这样定义你的数组:

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

像这样:

my_array = [];
my_array[0] = "a";
// ...
于 2012-10-27T01:18:12.127 回答
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);
}
于 2012-10-27T01:17:15.563 回答
0

您使用的是相同的索引0

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

JS小提琴

于 2012-10-27T01:17:48.183 回答
-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页面

<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>

可以使用任何参数调用函数

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

或者

<body onmousemove="FollowMouse(d1)">
于 2015-02-28T08:09:20.910 回答
-2
var f=d=>
  d.forEach(k=>
    alert(k)
  );
let a=[1,2];
f(a);

小提琴

于 2016-11-04T23:29:35.747 回答