如何在JavaScript中连接字符串数组-连接时进行修改
我有一个数组,希望将这些元素放在一个字符串中。 这就是我在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
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)