JavaScript语法不起作用

时间:2015-11-07 22:59:50

标签: javascript syntax

我有这个代码,效果很好:

var draw = [
      {lat:60.06484046010452,lng:-121.640625}, {lat:50.064191736659104,lng:-136.40625}, {lat:50.958426723359935,lng:-103.7109375}
    ];

但是现在,因为变量绘制的值需要在运行时更改,所以我写了这个代码&我希望它允许在变量st的值改变时改变绘制值:

var st = "{lat:60.06484046010452,lng:-121.640625},{lat:50.064191736659104,lng:-136.40625},{lat:50.958426723359935,lng:-103.7109375}";
var draw =[ st ];

但这不起作用,我怎样才能让它发挥作用,我是一个菜鸟,谢谢你

3 个答案:

答案 0 :(得分:3)

st的类型为String,您只能按文本操作它。

我相信您使用的对象错误,但您最初使用的是:

var draw = [{lat:60.06484046010452,lng:-121.640625}, {lat:50.064191736659104,lng:-136.40625}, {lat:50.958426723359935,lng:-103.7109375}];

此外,如果您需要向此数组添加对象,请使用push方法。

draw.push({ lat: 60.06484046010452, lng: -103.7109375 });

要从最后删除,请使用pop方法:

var lastItem = draw.pop();

要在开头添加,请使用unshift方法并删除use shift。

答案 1 :(得分:3)

您刚刚将对象变为字符串。只需将其保留为对象,它就可以正常工作(a.k.a删除引号):

var st = '[{"lat":60.06484046010452,"lng":-121.640625},{"lat":50.064191736659104,"lng":-136.40625},{"lat":50.958426723359935,"lng":-103.7109375}]';
var draw = JSON.parse(st);

答案 2 :(得分:1)

您的原始代码有效,您可以对其进行编辑。 draw变量将是对象列表,您可以添加和删除项目:

var draw = [
      {lat:60.06484046010452,lng:-121.640625}, {lat:50.064191736659104,lng:-136.40625}, {lat:50.958426723359935,lng:-103.7109375}
    ];
draw.push({lat:10.10101010,lng:20.20202020});
for(var i = 0; i < draw.length; i++){
    document.write(draw[i].lat + " / " + draw[i].lng + "<br/>");
}