JSFiddle - React, Tailwind, and code Playground

by henser

JavaScript

var sets = (function(a, k) {
		var max = [],
        result,
    		mask,
        i,
        total = Math.pow(2, a.length); 
        
    for (mask = 1; mask < total; mask++) {
        result = [];
        i = a.length - 1;
        var sum  = 0;
        do {
            if ((mask & (1 << i)) !== 0) {
                result.push(a[i]);
                sum = sum + a[i];
            }
        } while (i--);
        if(sum <= k){
        	max = result;
        }       
    }
    return max.length; 
});
console.log(sets([3,1,2,1], 4));