整个列表作为单个String变量提供。
instruments = '["guitar","bass","drums","keyboard"]';
如何将String转换为数组,以便我可以在各自的div标签中打印每个项目?
for(var i=0;i<instruments.length;i++){
document.write("<div>"+instruments[i]+"</div>");
}
答案 0 :(得分:4)
如果字符串包含有效的JSON数组(如您的示例中所示),则可以使用JSON.parse
,如下所示:
instrumentsString = '["guitar","bass","drums","keyboard"]';
instrumentsArray = JSON.parse(instrumentsString);
请注意,所有浏览器都没有JSON.parse
- 函数,因此您可能必须包含实现。 jQuery附带一个例子,你也可以使用Douglas Crockfords json2。
答案 1 :(得分:3)
在这种情况下,您实际上可以使用JSON parser:
JSON.parse('["guitar","bass","drums","keyboard"]');
// -> ["guitar", "bass", "drums", "keyboard"]
答案 2 :(得分:1)
鉴于您的instruments
变量:
像这样使用JSON.parse()
:
var instrumentsArray = JSON.parse(instruments);
或者,做这样的事情:
instruments = instruments.replace(/\[(.*?)\]/, "$1");
var instrumentsArray = instruments.split(/,/);
然后只需使用for
循环遍历数组:
for (var i = 0; i < instrumentsArray.length; i++) {
// instrumentsArray[i] is the current element
}
答案 3 :(得分:0)
如果字符串列表有任何分隔符,则只需使用分割函数。
示例:
var myString = "zero one two three four";
var mySplitResult = myString.split(" ");
for(i = 0; i < mySplitResult.length; i++){
document.write("<br /> Element " + i + " = " + mySplitResult[i]);
}
答案 4 :(得分:0)
您可以评估它以获取阵列。
var instruments = '["guitar","bass","drums","keyboard"]';
var instruments_array = eval(instruments);
答案 5 :(得分:0)
你可以简单地在其上eval
instruments = '["guitar","bass","drums","keyboard"]';
var instrumentsArray = eval(instruments);
然后
for(var i=0;i<instrumentsArray.length;i++){
document.write("<div>"+instrumentsArray[i]+"</div>");
}