DotAのリファレンスがあるので、これに答えるのに特に刺激を受けています。 :)
したがって、問題を正しく理解していれば、すべての組み合わせをチェックする必要はなく、query
にキーを繰り返し追加する必要があります。 3つのセッション変数の内容に基づくオブジェクト。以下は、returnFilterQuery
と論理的に同等だと思います。 上記の機能。
var returnFilterQuery = function() {
var query = {game: 'dota'};
var modifyQueryIfArray = function(key, sessionKey) {
var value = Session.get(sessionKey);
if (!_.isEmpty(value))
query[key] = {$in: value};
};
modifyQueryIfArray('gamemode', 'dotaMode');
modifyQueryIfArray('region', 'dotaRegion');
modifyQueryIfArray('skill', 'dotaSkill');
return Session.set('dotaFilter', query);
};
isEmpty
に注意してください length
よりも安全なチェックかもしれません セッション変数が配列でない場合。