Перебрать массив в JavaScript и связать его с другой переменной

0

У меня есть массив в javascript. Я должен перебрать его и передать значения переменной, и каждое значение должно быть разделено запятой.

Это мой код:

var selected = new Array();
jQuery("input[type=checkbox]:checked").each(function() {
    selected.push(jQuery(this).attr('id'));
});
Теги:
for-loop

4 ответа

2
Лучший ответ

Вам нужен Array.join()

var a = new Array("Wind","Rain","Fire");
var myVar1 = a.join();      // assigns "Wind,Rain,Fire" to myVar1
var myVar2 = a.join(", ");  // assigns "Wind, Rain, Fire" to myVar2
var myVar3 = a.join(" + "); // assigns "Wind + Rain + Fire" to myVar3

Вопросы:

Он не будет работать с аргументами, потому что объект arguments не является массивом, хотя он выглядит так. У него нет метода соединения:

function myFun(arr) {
   return 'the list: ' + arr.join(",");
} 
myFun(arrayObject);

будет бросать

TypeError: arr.join is not a function

потому что arr - это не объект jQuery, а обычный объект JavaScript.

  • 0
    var myVar2 = a.join (","); присоединяется к моим ценностям, разделенным, Спасибо, Zaheer ..!
  • 0
    Ваш ответ не показывает, как совместить это с $.each используемым OP.
4
selected.join(',')

см. Array.join()

  • 0
    Где я должен использовать selected.join (',')?
2

Используйте приведенный ниже код.

var namesArray = new Array("John", "Micheal", "Doe","Steve","Bob"); //array
var resultString = ""; // result variable

//iterate each item of array
for (var i = 0; i < namesArray.length; i++) 
     resultString += namesArray[i] + ",";

//remove the extra comma at the end, using a regex
resultString = resultString.replace(/,(?=[^,]*$)/, '')

alert(resultString); 

Удачи.

1

ИЛИ, вместо того, чтобы удалять дополнительную запятую, добавьте конечный элемент вне цикла for:

for (var i = 0; i < namesArray.length-1; i++)
    resultString += namesArray[i] + ", ";
resultString += namesArray[namesArray.length-1];

Да, я знаю, что это старое сообщение :-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню