2015-11-07 25 views
2

我有這樣的代碼,它工作得很好:JavaScript語法不工作

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 ]; 

但是這不工作,我怎樣才能使它發揮作用,我是小白,謝謝

+0

ST是String類型的,你只能操縱它作爲一個文本會。 –

回答

3

st是字符串類型,您只能將其作爲文本進行操作。

我相信你正在使用的對象錯了,但你使用它的權利開始:此外

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方法併除去使用移位。

3

你剛剛把你的對象變成了一個字符串。只要保持它作爲一個對象,它會工作正常(又名刪除引號):

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); 
+0

@Joe你的對象只需要在不同的變量中(或者按照你在第一個代碼示例中的方式來寫)。 – nils

+0

實際上,我使用WebView和WebEngine JavaFX類運行JavaScript,並且我的程序的一部分將隨機數字集轉換爲上面我寫的形式並將其存儲爲字符串,並將其傳遞給javascript,所以現在再次分割字符串,並修改它會增加更多的複雜性。 – Joe

+0

如果你把它作爲一個字符串,你可以直接傳遞它(以JSON格式),並將其解析爲javascript,而不分割它。 – nils

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/>"); 
 
}

+0

添加有關爲什麼他的代碼更改不起作用的信息。例如「st是String類型的,你只能像文本一樣操作它。」 –