【问题标题】:Why isn't my string being converted into an Array in jQuery为什么我的字符串没有在 jQuery 中转换为数组
【发布时间】:2020-04-12 15:30:44
【问题描述】:

以下代码的目的是获取一个数组,以便与 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]"]

上面的输出以双引号和值“未定义”开头。我相信我的输出根本不是一个数组,但我无法解决这个问题。任何指向正确方向的指针都非常感谢

【问题讨论】:

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


    【解决方案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)

    【讨论】:

    • 太棒了!解决了我的问题
    猜你喜欢
    • 1970-01-01
    • 2021-02-23
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 2022-01-21
    • 2015-01-06
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多