如何在另一个数组中转换字符串数组

时间:2016-05-26 10:18:05

标签: javascript jquery

我有一个ajax调用,它返回一个字符串数组,我需要将这个数组转换为一个javascript数组:我用例子解释:

我从ajax调用返回就是这样:

 success: function (doc) {

doc.d[0] // =  "{ 'title': 'Espagne', 'start': '2016-05-24', 'end': '2016-05-25' }" 
doc.d[1] // = "{ 'title': 'Italie', 'start': '2016-05-18', 'end': '2016-05-20' }"
....

我想创建一个像这样的JavaScript数组:

 var countries = new Array();
 countries[0] = { 'title': 'Espagne', 'start': '2016-05-24', 'end': '2016-05-25' };
 countries[1] = { 'title': 'Italie', 'start': '2016-05-18', 'end': '2016-05-20' };

您是否知道如何从doc.d获取返回字符串并将其转换为数组?

如果我这样做的话:

var countries = new Array();
coutries[0] = doc.d[0] 

它无法正常工作

可以使用.map()或.push()使用doc.d构建新数组吗?

3 个答案:

答案 0 :(得分:2)

只需将列表分配给另一个变量

即可

试试这个

var countries  = JSON.parse(doc.d);

答案 1 :(得分:2)

JSON.parse()方法解析JSON字符串,构造字符串描述的JavaScript值或对象。

JSON.parse(doc.d[0]);

答案 2 :(得分:0)

尝试以下代码

doc.d[0] =  "{ 'title': 'Espagne', 'start': '2016-05-24', 'end': '2016-05-25' }" 
doc.d[1] = "{ 'title': 'Italie', 'start': '2016-05-18', 'end': '2016-05-20' }"

var arr = [];
if(doc.d.length)
{

    for(var i in doc.d)
    {
        arr.push(JSON.parse(doc.d[i]));
    }

    console.log(arr);
}

否则

doc.d[0] =  "{ 'title': 'Espagne', 'start': '2016-05-24', 'end': '2016-05-25' }" 
doc.d[1] = "{ 'title': 'Italie', 'start': '2016-05-18', 'end': '2016-05-20' }"

var arr = [];
if(doc.d.length)
{

    for(var i in doc.d)
    {
        arr.push(doc.d[i].split('"')[1]); //This way also you can do
    }

    console.log(arr);
}

所以arr [0]将与doc.d [0]的对象相同,等等。