Массив Javascript

#javascript #arrays #post

#javascript #массивы #Публикация

Вопрос:

Допустим, у меня есть куча имен в массиве, и я хочу опубликовать эти данные на другом URL на моем сайте, но данные post будут «name =» name «amp;name = » name «»; и так далее

Итак, для каждого имени мне нужно сгенерировать другое имя = добавлять к данным post, пока больше не останется имен

Как я могу это сделать?

Ответ №1:

Вы можете сопоставить каждый элемент в массиве с одним и тем же с помощью name= prepended, а затем объединить их с помощью amp; символа.

 return names.map(function(name) {
    return "name="   name;
}).join("amp;");
  

Если вам нужно поддерживать браузеры, в которых нет map метода Array (для этого требуется JS 1.6), вы можете удалить его из MDC или просто использовать for цикл вместо этого.

 var queryBits = [];
for (var i = 0, len = names.length; i < len; i  ) {
    queryBits.push("name="   names[i]);
}
return queryBits.join("amp;");
  

Комментарии:

1. Вы должны упомянуть, что map это доступно не во всех браузерах… редактировать: 1 для более полного решения

2. @Felix: Я понял это сразу после того, как нажал «Отправить». Отредактировано, чтобы включить информацию.

3. @lonesomeday: Это хороший момент. @joe, ты можешь перенести name в escape функцию, чтобы убедиться, что в твоей строке запроса нет сомнительных символов: return "name=" escape(name); .

Ответ №2:

Вы можете использовать jquery param() для сериализации массива, чтобы опубликовать его в URL. посмотрите здесь для справки. Это очень полезно, потому что автоматически кодирует ваши данные.

Комментарии:

1. Он мог бы, но стоит ли включать всю библиотеку только для использования этой функции?

2. что ж, если вы используете библиотеку только для одной страницы, вы можете включить библиотеку только на эту страницу. (и мне нравится использовать jQuery, потому что это проще, и вам не нужно слишком беспокоиться о совместимости с браузером)