
431
20.2 メニューバーの作成
例
20-2
国別フィルタ関数
nbviz.filterByCountries = function(countryNames) {
if(!countryNames.length){ #
❶
nbviz.countryDim.filter();
}
else{
nbviz.countryDim.filter(function(name) { #
❷
return countryNames.indexOf(name) > -1;
});
}
if(countryNames.length === 1){ #
❸
nbviz.activeCountry = countryNames[0];
}
else{
nbviz.activeCountry = null;
}
};
❶
countryNames
配列が空の場合(ユーザが
All Countries
を選んだ場合)はフィルタをリセットする。
❷
crossfilter
国次元に対するフィルタ関数を作成する。この関数は、
countryNames
リストに国が含まれて
いる場合(
1
つの国か、
1
人または
2
人の受賞国すべてを含む場合)は
true
を返す。
❸ 選択された
1
つの国を保持する(例えば、地図や棒グラフでハイライトするため)。
これで受賞分野、性別、国次元のフィルタセレクタを作成したので、残りは受賞者数メトリック
ラジオボタンへの変更に対応するコールバック関数を追加するだけです。
20.2.4
受賞者数メトリックラジオボタンの設置 ...