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

問題は、各要素を index0に割り当てているため、互いに上書きしていることです。

// 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 に答える