正しいマーカーアイコンを適切なマップに配置するのに役立つ、3項演算子を使用した構文のヘルプが少し必要です。0、1、および2という一意のアイコンを持つ3つの領域0、1、および2があります。
以前は2つの領域しかなかったため、この3項演算子は正常に機能しました。
icon: (area == 1) ? icon1: icon0,
次に、area2に3つ目のアイコン(icon2)を追加する必要があります。
私はさまざまな方法を試しましたが、うまくいかないようです。
構文は次のとおりです。
icon: (area == 1) ? icon1 : (area == 2) ? icon2 : icon0,
しかし、これは複雑になり始めています。代わりに、この作業を行う関数を作成する方が良いでしょう:
icon: getIcon(area),
...
function getIcon(area) {
if (area == 1) {
return icon1;
} else if (area == 2) {
return icon2;
}
return icon0;
}
どうですか:
icon: [ icon0, icon1, icon2 ][area],
非常に簡単な方法
オブジェクトが次のような場合:
var obj = {
x: true,
y: {
xy: 'some value'
}
}
var result = obj ? obj.y ? obj.y.xy ? obj.y.xy : 'N/A' : 'N/A' : 'N/A'
console.log(result) // "some value"
オブジェクトリテラルはどうですか。
icons = {
0: icon0,
1: icon1,
2: icon2
}
icon = icons[area];
icon: (area == 0) ? icon0 : (area == 1) ? icon1 : icon2,
複数の三項構文(私がそうだったように)について混乱している人にとっては、次のようになります。
var yourVar = condition1 ? someValue
: condition2 ? anotherValue
: defaultValue;
必要な数の条件を追加できます。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator でさらに読むことができます。