从数组格式的字符串创建Javascript数组

时间:2018-08-29 15:18:16

标签: javascript arrays

我正在从CMS获取一个字符串(具有数组标记),但是javascript无法将其识别为数组

// Example of how data comes from CMS
var data = [ ["<div class='example'><h2>University</h2><hr><p>Lorem Ipsum</p></div>", 13.3851, -2.2568, "/example.png"],       
["<div class='example2'><h2>University Two</h2><hr><p>Lorem Ipsum Example</p></div>", -3.3851, -22.2568, "/examplenow.png"], ] ;

// where I need data as array
googlelocations = data;

当我记录数据时,我得到:

0: "[\"<div class='example'><h2>University</h2><hr><p>Lorem Ipsum</p></div>\", -3.3851, -22.2568, \"/example.png\"],\r\n[\"<div class='example2'><h2>University Two</h2><hr><p>Lorem Ipsum Example</p></div>\", -3.3851, -22.2568, \"/examplenow.png\"],"

长度:1 如何将var数据作为上述信息的数组?

2 个答案:

答案 0 :(得分:0)

假设您获得

["<div class='example'><h2>University</h2><hr><p>Lorem Ipsum</p></div>", 13.3851, -2.2568, "/example.png"],       
["<div class='example2'><h2>University Two</h2><hr><p>Lorem Ipsum Example</p></div>", -3.3851, -22.2568, "/examplenow.png"],

就像@DATA一样来自CMS。

您需要将这些数组包装为数组数组,以便将它们正确分配到data变量中。

var data = [ @DATA ];

答案 1 :(得分:0)

要解析似乎是一个数组的响应,可以使用JSON.parse(),在这种情况下,您需要构建一个有效的数组或js对象。在这种情况下,添加[ ]可以解决问题,但这取决于响应的准确程度。

var data = "[\"<div class='example'><h2>University</h2><hr><p>Lorem Ipsum</p></div>\", -3.3851, -22.2568, \"/example.png\"],\r\n[\"<div class='example2'><h2>University Two</h2><hr><p>Lorem Ipsum Example</p></div>\", -3.3851, -22.2568, \"/examplenow.png\"]"

data = JSON.parse("["+data+"]")

console.log(data)

如果只需要这些值,则可以执行以下操作:

var data = "[\"<div class='example'><h2>University</h2><hr><p>Lorem Ipsum</p></div>\", -3.3851, -22.2568, \"/example.png\"],\r\n[\"<div class='example2'><h2>University Two</h2><hr><p>Lorem Ipsum Example</p></div>\", -3.3851, -22.2568, \"/examplenow.png\"]"

data = data.split(",")

var latLong = [data[1],data[2],data[5],data[6]] 

console.log(latLong)