Javascript检索字符串数组值错误

时间:2014-11-26 08:27:58

标签: javascript arrays ajax

我似乎在格式化我的ajax方法提供的数组字符串时出现问题。我一直试图直接在userCoor中输入数据值,但它只是应该是一个数组(请参考图片)

有人可以告诉我,我想如何格式化为图片中提供的数组

所以数据返回一个数组而不是一个维数组,所以我想如何改变成一个维数组

由于

示例代码

$.ajax({
  url: "#",
  type: "POST",
  dataType: "json",
  success: function(data, textStatus, jqXHR) {

    var userCoor = [
      ['300 Tanglin Halt Road, Singapore 148812', 1.3000, 103.8000],
      ['Temasek Poly, Singapore', 1.346753, 103.932577],
      ['Temasek Poly, Singapore', 1.346368, 103.932175]
    ];

    console.log(userCoor);

    console.log(data);
  }
})

更新

我现在已经将dataType更改为text并返回,如下所示现在是如何将此文本转换为数组

来自源的原始数据

['300 Tanglin Halt Road, Singapore 148812',1.3000,103.8000],['Temasek Poly, Singapore',1.346753,103.932577],['Temasek Poly, Singapore',1.346368,103.932175]

我面临的问题是我在userCoor中硬编码但是我在ajax方法中检索它并不是userCoor [data]它会给出单行数组而不是3维数组

以下是假设Two same String but second link not known to be an array

的示例

1 个答案:

答案 0 :(得分:0)

**使用eval被认为是邪恶的做法.. **

如果你得到图片的字符串:“[bla bla bla],[bla bla bla]”..

您只需要执行以下操作将其转换为维度数组:

 var data = "['300 Tanglin Halt Road, Singapore 148812', 1.3000, 103.8000], ['Temasek Poly, Singapore', 1.346753, 103.932577], ['Temasek Poly, Singapore', 1.346368, 103.932175]";
 var result = eval('(['+ data +'])');

console.log(result);

这对你有用吗? 我只是想知道你为什么从服务器收到这个字符串?也许如果你需要一个数组,你应该改变你的服务器方法..