JSFiddle - React, Tailwind, and code Playground

JavaScript

function unzip(arr) {
        var conds = Array.prototype.slice.call(arguments, 1);
        var res = conds.map(function () { return [] });
        for (var i = 0; i < arr.length; i++) {
           for (var k = 0; k < conds.length; k++) {
               if (conds[k](i, arr[i])) {
                   res[k].push(arr[i]);
               }
           }
        }
        return res;
    }

    r = unzip([0,1,2,3,4],
        function (i) { return !(i % 2) }, // even
        function (i) { return i % 2 });   // odd

    alert(r[0] + " || " + r[1]);