0

我在javascript中有一个数组。我必须对其进行迭代并将值连接到一个变量,并且每个值都应该用逗号分隔。

这是我的代码:

var selected = new Array();
jQuery("input[type=checkbox]:checked").each(function() {
    selected.push(jQuery(this).attr('id'));
});
4

4 回答 4

4
selected.join(',')

Array.join()

于 2013-09-24T05:25:12.390 回答
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); 

祝你好运。

于 2013-09-24T05:40:55.703 回答
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

问题:

它不适用于参数,因为参数对象不是数组,尽管它看起来像它。它没有连接方法:

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

会抛出

TypeError: arr.join is not a function

因为arr它不是一个 jQuery 对象,只是一个普通的 JavaScript 对象。

于 2013-09-24T05:35:43.437 回答
1

或者,不必删除多余的逗号,而是在 for 循环之外添加最后一个元素:

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

是的,我知道这是一个旧帖子:-)

于 2017-07-25T02:13:13.917 回答