Вот история... У меня есть функция jQuery, которая делает что-то, на эту функцию ссылаются очень регулярно. Один из входных параметров является массивом, эти данные массива трудно кодируются, и таким образом я хочу передать данные как это: (это - то, как я сделал бы это с помощью PHP),
myFunction(Array("url"=>"abc.com","example"=>"hello_world"));
Вместо
$arr=Array("url"=>"abc.com","example"=>"hello_world");
myFunction($arr);
Таким образом, как я достигаю этого со своей функцией jQuery, я хочу, чтобы это было одним лайнером если возможный.
Править
Возможно, мой пример был немного вводящим в заблуждение, смотрите на индексы массива снова. Массив, который я отправляю, является ассоциативным массивом.
Короче говоря я не хочу переменных перед своей функцией, я хочу, чтобы массив был hardcoded непосредственно в параметре функции, как предложено в первом примере, который я дал.
:-)
Я перечитал ваш отредактированный вопрос, и ваш ответ находится в объекте javascript, во многом как словари или хэши на других языках:
{ first_key: '1', second_key: '2', third_key: '3' };
А для обратного вызова просто передайте его как литерал, объявленный на месте:
myFunction({ first_key: '1', second_key: '2', third_key: '3'});
Вот пример, если это то, что вы имеете в виду:
var arr = [ "one", "two", "three", "four", "five" ];
jQuery.each(arr, function() {
$("#" + this).text("Mine is " + this + ".");
return (this != "three"); // will stop running after "three"
});
//Source http://api.jquery.com/jQuery.each/
Посмотрите на форматирование JSON для вашего массива ...
somefunction({'key1':'value', 'key2':'value'});
Я не совсем понимаю, о чем вы спрашиваете, но постараюсь ответить. Если вы ссылаетесь на этот массив более чем в одном месте, то, вероятно, лучше сначала определить его как константу:
ARRAY = ['a', 'b', 'c']
myFunction(ARRAY);
myFunction2(ARRAY);
Если вы ссылаетесь на этот жестко закодированный массив только один раз, то передайте его в функцию jQuery как объявленный литерал массива в вызове функции:
myFunction(['a', 'b', 'c']);
В JavaScript нет ассоциативных массивов. Вероятно, вы сможете получить то, о чем просите, с помощью комбинации обычных массивов и объектов:
var foo = [
{
url: "abc.com",
example: "hello_world"
},
{
url: "example.net",
example: "example"
}
];
Существует формат данных, называемый JSON, который использует синтаксис JavaScript. Поскольку вы, похоже, используете PHP, а в PHP есть встроенные функции для генерации JSON (найдите json_encode () в руководстве по PHP), это может быть очень простой задачей: закодировать структуру данных PHP как JSON и использовать ее как взято из JavaScript.