我在javascript中有一个数组。我必须迭代它并将值连接到一个变量,每个值应该用逗号分隔。
这是我的代码:
var selected = new Array();
jQuery("input[type=checkbox]:checked").each(function() {
selected.push(jQuery(this).attr('id'));
});
答案 0 :(得分:4)
selected.join(',')
请参阅Array.join()
答案 1 :(得分: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对象。
答案 2 :(得分: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);
祝你好运。
答案 3 :(得分:1)
OR,而不是必须删除额外的逗号,在for循环之外添加最后一个元素:
for (var i = 0; i < namesArray.length-1; i++)
resultString += namesArray[i] + ", ";
resultString += namesArray[namesArray.length-1];
是的,我知道这是一个老帖子: - )