我正在从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数据作为上述信息的数组?
答案 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)