我希望传单中圆圈的颜色取决于变量。 当前代码如下所示,但不起作用:
function displayMapLatLng
(lat, lng, boolean, displayInfo) {
var latlng =
new L.LatLng(lat, lng);
var color =
if (boolean =='Y'){
"blue"
}else{
"red"
}
var circle =
new L.circle ((latlng), 20, {color: 'color', opacity:.5})
circle.addTo(map);
有人知道如何解决这个问题吗?
最佳答案
您的 if
语句不是有效的 JavaScript。您可以将其写为三元运算:
function displayMapLatLng (lat, lng, boolean, displayInfo) {
var latlng = new L.LatLng(lat, lng);
var color = (boolean === 'Y') ? "blue" : "red";
var circle = new L.circle ((latlng), 20, {color: color, opacity:.5})
circle.addTo(map);
}
boolean
对于字符串变量来说也是一个奇怪的名字。如果它实际上是一个 bool 值,您可以将操作编写为:
var color = (boolean) ? "blue" : "red";
更新:
如果您有更多可能的颜色值,三元运算就没那么有用了。那么 if ... else if
语句或 switch
语句会更合适:
var color;
switch(boolean) {
case 'B':
color = 'blue';
break;
case 'R':
color = 'red';
break;
case 'W':
color = 'white';
break;
case 'K': // as in kobolt
color = 'black';
break;
default:
color = 'yellow';
break;
}
当没有其他大小写与 boolean
匹配时,将使用 default
大小写。
关于javascript - 传单圆圈颜色取决于变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30367076/