如何将Javascript字符串转换为数组?

时间:2011-01-11 09:01:32

标签: javascript html

整个列表作为单个String变量提供。

    instruments = '["guitar","bass","drums","keyboard"]';

如何将String转换为数组,以便我可以在各自的div标签中打印每个项目?

    for(var i=0;i<instruments.length;i++){
        document.write("<div>"+instruments[i]+"</div>");
        }

6 个答案:

答案 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>");
    }