为什么我的字符串没有在jQuery中转换为数组

时间:2019-12-20 04:29:16

标签: jquery arrays json google-maps-api-3

以下代码的目的是获取一个数组,以供Google Map API使用,以在Google Map上显示多个位置标记。我通过Ajax响应从php文件中获取json数组。 当我对json响应进行字符串化时,它看起来像这样:

[["Sondrevegen 8 - Oppføring av tomannsbolig, SONDREVEGEN 8, Oslo"],["Sondrevegen 6 - Oppføring av 
enebolig, SONDREVEGEN 6, Oslo"],["Skådalsveien 2 D - Oppføring av enebolig, SKÅDALSVEIEN 2 D, Oslo"], 
["Rosendalsveien 23 - Oppføring av enebolig - Hus 1, ROSENDALSVEIEN 23, Oslo"],["Skådalsveien 10 E - 
Oppføring av enebolig - Hus 4, SKÅDALSVEIEN 10 E, Oslo"]]

我需要在数组中能够正确执行Google Map API调用的格式是:

[["Sondrevegen 8 - Oppføring av tomannsbolig", "SONDREVEGEN 8", "Oslo"],
["Sondrevegen 6 - Oppføring av enebolig", "SONDREVEGEN 6", "Oslo"],
["Skådalsveien 2 D - Oppføring av enebolig", "SKÅDALSVEIEN 2 D", "Oslo"],
["Rosendalsveien 23 - Oppføring av enebolig - Hus 1", "ROSENDALSVEIEN 23", "Oslo"],
["Skådalsveien 10 E - Oppføring av enebolig - Hus 4", "SKÅDALSVEIEN 10 E", "Oslo"]]

如您所见,我缺少将数组中的值括起来的双引号。我的研究告诉我,我需要将数组转换为字符串,以将双引号添加到字符串中的值,然后将字符串转换回数组,如下所示:

var test = response;
var eventlist;
var eventstring = new String();

for (var i = 0, len = test.length; i < len; i++) {
    content = '['+test[i]+']'
    eventlist = eventlist + content;
    }
eventstring = eventlist.toString().replace(/"/g, "");    
let arr = eventstring.split(',');

上面的代码在控制台日志中返回以下输出。

["undefined[Sondrevegen 8 - Oppføring av tomannsbolig", " SONDREVEGEN 8", " Oslo][Sondrevegen 6 - 
Oppføring av enebolig", " SONDREVEGEN 6", " Oslo][Skådalsveien 2 D - Oppføring av enebolig", " 
SKÅDALSVEIEN 2 D", " Oslo][Rosendalsveien 23 - Oppføring av enebolig - Hus 1", " ROSENDALSVEIEN 23", 
" Oslo][Skådalsveien 10 E - Oppføring av enebolig - Hus 4", " SKÅDALSVEIEN 10 E", " Oslo]"]

上面的输出以双引号和值'undefined'开头。我相信我的输出根本不是数组,但是我无法解决这个问题。任何指向正确方向的指针都将受到高度赞赏

1 个答案:

答案 0 :(得分:1)

var array = [["Sondrevegen 8 - Oppføring av tomannsbolig, SONDREVEGEN 8, Oslo"],["Sondrevegen 6 - Oppføring avenebolig, SONDREVEGEN 6, Oslo"],["Skådalsveien 2 D - Oppføring av enebolig, SKÅDALSVEIEN 2 D, Oslo"], 
["Rosendalsveien 23 - Oppføring av enebolig - Hus 1, ROSENDALSVEIEN 23, Oslo"],["Skådalsveien 10 E - Oppføring av enebolig - Hus 4, SKÅDALSVEIEN 10 E, Oslo"]];
for(var i=0; i< array.length; i++)
{
  array[i] = array[i][0].split(', ');
}
console.log(array)