JSFiddle - React, Tailwind, and code Playground

by Adam Boduch

JavaScript

var sets = {};

function rule(set, func) {
	sets[set] = (sets[set] || []).concat(func);
}

function is(set, obj) {
  if (sets[set].length) {
  	return sets[set]
    	.map(rule => rule(obj))
      .reduce((result, item) => result + item, 0) /
      	sets[set].length;
  }
  
  return 0;
}

var array = [ 1, 2, 3, 4, 5, 7, 9 ];

rule('odd', (obj) => {
	if (Array.isArray(obj)) {
  	return obj.filter(item => item % 2).length / obj.length;
  }
});

console.log(is('odd', array));