配列のハッシュo
があるとします。各イベントが0以上のコールバックを持つことができるイベントの登録済みコールバックなどです。配列を1つの要素で初期化するか、配列が存在する場合に要素をpushする
これをES6でよりうまく表現する方法はありますか?
if (key in o) o[key].push(x); else o[key] = [x]
「良い」とは、他の開発者がより理解しやすいという意味です。おそらくより簡潔ですが、読みやすさを犠牲にするものではありません。特定の(共通の)問題は、o
がしばしばより長い表現であることです。 this.listeners
、それを3回繰り返すことは最適ではないようです。実際のコードは次のようになります。
if (event in this.listeners)
this.listeners[event].push(callback);
else
this.listeners[event] = [callback];
を – Jakob