массив как параметр функции - PullRequest
2 голосов
/ 12 января 2012

У меня есть флэш-приложение, которое создает массив и вызывает функцию javascript.

var jsParams = ["3011","3012","3013","3014","3015"];
ExternalInterface.call("doCall", jsParams);

И это моя функция javascript:

function doCall(params) {
  console.log(params);
  console.log(params[0]);
}

Вывод в firebug:

["3011","3012","3013","3014","3015"]
[

Но для второй строки я ожидал 3011, а не [.Затем я попытался вызвать ту же функцию с теми же параметрами из firebug и выдать функцию:

doCall(["3011","3012","3013","3014","3015"]);
["3011","3012","3013","3014","3015"]
3011

Мой вопрос заключается в том, как передать параметры из Actionscript в JavaScript как массив, а не как строковое значение.

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 января 2012

Похоже, что переменная params передается как строка, а не как массив.

Обозначение в квадратных скобках применительно к строке представляет символ в указанном индексе, который вв этом случае будет '[' (позиция 0).

. Вы должны изучить JSON-декодирование, чтобы найти безопасный способ преобразования строки обратно в массив, я бы не рекомендовал eval и JSON.decode не поддерживается широко.

0 голосов
/ 13 января 2012

вы пробовали инкапсулировать массив в другой массив?

ExternalInterface.call ("doCall", [jsParams]);

Я думаю, что исходный массив таков, что вы можете передавать несколько наборов параметров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...