だから、可能な解決策がいくつかあります。最初のものは三項演算子を使用することですが、それはすべてがきれいではありません。
typeof dIndex === 'undefined' ? dPolylines = [] : (typeof rIndex === 'undefined' ? dPolylines[dIndex] = [] : dPolylines[dIndex][rIndex] = []);
あなたが見ることができるように、それだけであまりにも長いです。 Archerの答えを考えれば、次のようになります。
if (typeof dIndex === 'undefined') {
dPolylines = [];
} else if (typeof rIndex === 'undefined') {
dPolylines[dIndex] = [];
} else {
dPolylines[dIndex][rIndex] = [];
}
これは6行になりますが、これはまだかなり長いです。私は私の元のコード全体のコードを複数回のこの部分を必要とするつもりですので、しかし、私は機能にそれを変換:
dPolylines = clearDirectionsArray(dPolylines, dIndex, rIndex);
function clearDirectionsArray(array, dIndex, rIndex) {
if (typeof dIndex === 'undefined') {
array = [];
} else if (typeof rIndex === 'undefined') {
array[dIndex] = [];
} else {
array[dIndex][rIndex] = [];
}
return array;
};
これは最終的に大幅にコード全体の行の量を下げるだろう。これはもともと質問に載せられていませんでしたが。
'ternary'演算子を使用しますか? –
異なる配列キーのために、短いバージョンを作ることはできません。 – Justinas
コードが壊れています。 elseブランチで未定義の 'dIndex'を使用しています –