Skip to content

Instantly share code, notes, and snippets.

@mrgenixus
Created December 8, 2015 04:20
Show Gist options
  • Save mrgenixus/0b3b83adcfed63ab9fef to your computer and use it in GitHub Desktop.
Save mrgenixus/0b3b83adcfed63ab9fef to your computer and use it in GitHub Desktop.
survey_response_requirements
var survey_responses = [
{
eyes: {
color: 'blue'
},
flavors: {
favorite: 'vanilla'
}
}
];
function blue_eyes(response) {
return response.eyes.color === 'blue';
}
function likes_vanilla(response) {
return response.flavors.favorite === 'vanilla';
}
function requirements(count) {
return function(index, response) {
var all = true;
var methods = Array.prototype.slice.call(arguments, 1);
$.each(methods, function(requirement) {
if ( ! requirement(response); ) {
all = false;
}
});
if (all) {
count++;
}
}
}
function evaluate(done, survey_responses, *requirements) {
// var requirements = Array.prototype.slice.call(arguments, 2);
var count;
$.each(survey_responses, function(index, response) {
var all = true;
$.each(requirements, function(requirement) {
if ( ! requirement(response); ) {
all = false;
}
});
if (all) count++;
});
done(count);
}
evaluate(console.log.bind(console), survey_responses, blue_eyes, likes_vanilla);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment