使用数组形式初始化数组中的字符串

3

我有一个字符串,是从ajax结果中获取的:

["name1", "name2", "name3", "name4", "name5"]

字符串模式与上面完全相同,包括",其中元素总数不固定。

我尝试了以下代码,但无法工作:

var strArr="";
$.ajax({url:"myurl",success:function(result){
     strArr=result;
}});
var arr = new Array(strArr);

更新:这是我的最新代码。
var strArr="";
$.ajax({url:"myurl",success:function(result){
    strArr=result;
    alert(strArr); //["name1", "name2", "name3", "name4", "name5"]
}});
var arr= JSON.parse(strArr);

dataType 选项设置为 json,然后 jQuery 将自动解析它。 - CBroe
1个回答

3
要将字符串转换为实际的数组,只需执行JSON.parse,就像这样
var data = '["name1", "name2", "name3", "name4", "name5"]';
console.log(JSON.parse(data));
# [ 'name1', 'name2', 'name3', 'name4', 'name5' ]

您可以按照以下方式确认返回的对象类型:

如此:

console.log(Object.prototype.toString.call(JSON.parse(data)));
# [object Array]

您的实际代码应该类似于这样:
$.ajax({
    url: "myurl",
    success: function(result) {
        alert(JSON.parse(result));
    }
});

这似乎在控制台上运行,但如何将其应用于我的上面的代码?抱歉,我对JavaScript的东西还很陌生。 - DnR
成功:function(result){ var array = JSON.parse(result); } - thefourtheye
@DnR JSON.parse 是 ECMA Script 规范的一部分,所以不需要包含任何内容 :-) - thefourtheye
@thefourtheye,除非用户使用的是早于ES5的浏览器。 :-) 在MDN上有一个填充程序 - RobG
1
@DnR 你可以这样做,但是值将会异步填充。因此,最后一行不会是程序中实际执行的最后一行代码。首先,JS将发送一个AJAX请求到URL,然后它将不会等待结果。它将处理其余的语句。所以,var arr= JSON.parse(strArr);被执行时,字符串变量为空。稍后,当该AJAX请求的响应返回时,将执行传递给success的函数。 - thefourtheye
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接