大家好我有这样的字符串
var data='mobile,car,soap,room';
我正在从这个字符串中进行解析,并将此字符串作为逗号分区并将其推送到这样的数组中
var availableTags=[];
var str='';
for(i=0;i<data.length;i++)
{
if(data[i]==',')
{
availableTags .push(str);
str='';
}
else
{
str +=data[i];
}
}
但是我做错了,因为我无法在逗号后得到最后一个值...现在我想知道我怎样才能知道我的字符串中,
的下一个存在是否存在。这样我也可以包含最后一个值。
如果有人指导我如何以其他方式完成同样的任务,我也将不胜感激。
我希望字符串是一个数组,它看起来应该是这样的
["mobile","car","soap","room"]
答案 0 :(得分:4)
你可以使用
var availableTags = data.split(",");
它将处理所有事情。并将生成一个数组。
答案 1 :(得分:3)
答案 2 :(得分:1)
循环后,您需要检查str
的值并添加它。它可以包含最后一个逗号后的其余部分,如果逗号是data
中的最后一个字符,则它可以为空。
但正如其他人指出的那样,split
可能是更好的方法。
答案 3 :(得分:1)
就修复现有功能而言,请尝试在for
循环后添加以下内容:
if (str != "")
availableTags.push(str);
(当循环结束时str
保存最后一个逗号之后的内容。)
但与其他答案一样,您可以使用数组.split()
方法:
var availableTags = data.split(",");
答案 4 :(得分:0)
您可以在开头添加额外的逗号:
data = data + ","
...