如何在JavaScript中连接字符串数组-连接时进行修改

如何在JavaScript中连接字符串数组-连接时进行修改,javascript,arrays,string,for-loop,concatenation,Javascript,Arrays,String,For Loop,Concatenation,我有一个数组,希望将这些元素放在一个字符串中。 这就是我在JavaScript函数中所做的 var main = [X, Y]; var str = ""; for (var i = 0; i < main.length; i++) { str = { label: main[i] }; } var main=[X,Y]; var str=“”; 对于(变量i=0;i

我有一个数组,希望将这些元素放在一个字符串中。 这就是我在JavaScript函数中所做的

var main = [X, Y];
    var str = "";    

    for (var i = 0; i < main.length; i++) {

        str = { label: main[i] };               
    } 
var main=[X,Y];
var str=“”;
对于(变量i=0;i
通过上面的代码,我得到了存储在变量'str'中的最后一个值 我得到的输出:
str={label:Y}

我想要的输出:
str={label:X},{label:Y}

问题是每次通过循环时都会重置str的值。您需要执行以下操作

str = str + { label: main[i] };
编辑以添加我同意您在这里处理对象而不是字符串的回答。但你说这就是你想要的,所以可能需要一种完全不同的方法

var main = ["X", "Y"];

var str = main.map(function(n){ return "{label:" + n + "}" }).join(",");
演示:

您的代码无法工作是因为无法将对象添加到字符串中。这将导致浏览器将对象强制转换为字符串(
[object object]
):


正如sean9999在上面的评论中所建议的那样,您似乎正在尝试将对象转换为JSON。要做到这一点,您不需要使用for循环,因为有一种使用
JSON.stringify
的原生方法

str = JSON.stringify(main);
您希望字符串“X”和“Y”放在str+={label:}

使用“X”和“Y”代替X和Y,并将它们作为字符串连接到“{label:”和“}”

var main=[“X”,“Y”];
var str=“”;
对于(变量i=0;i
编辑: 在上面的帖子中,“,”将不适用

下面的代码也包含了这一点

var main = ["X", "Y"];
    var str = "";    

    for (var i = 0; i < main.length; i++) {

        str += "{ label: "+main[i]+" }, ";               
    } 
if(str.length){
    str = str.substr(0,str.length-2);
}
alert(str)
var main=[“X”,“Y”];
var str=“”;
对于(变量i=0;i

小提琴:

但是
str
不是字符串。。。也许您希望
join
str
是一个字符串,但您正在分配一个对象…如何解决此问题?任何建议/帮助..非常感谢。@user3381574-首先,您必须理解编程中的
类型
的概念。请发布整个函数,并给出一些您正在做的事情和想要实现的内容。将为您提供类似于您正在寻找的内容的内容,但您的代码需要首先修复我非常确定
[object object][object][object][object][object][object][object]
不是预期的输出。嗯,它不是字符串,但它是他所说的他想要的。这就是为什么我编辑了我的答案。谁对所有答案投了反对票?非常感谢你的回复。我不会对任何答案投反对票。我试着投票支持他们所有人,但由于我没有足够的声誉,这不会让我成功。非常感谢巴吉钦的回复。我正在尝试修复我的代码。这很有帮助。
var main = ["X", "Y"];
    var str = "";    

    for (var i = 0; i < main.length; i++) {

        str += "{ label: "+main[i]+" }";               
    } 
var main = ["X", "Y"];
    var str = "";    

    for (var i = 0; i < main.length; i++) {

        str += "{ label: "+main[i]+" }, ";               
    } 
if(str.length){
    str = str.substr(0,str.length-2);
}
alert(str)