All Subsets
by mschock
HTML
<ul id="output">
</ul>
JavaScript
function permuteString(set, perm) {
perm = perm || '';
print(perm);
if (set.isEmpty()) {
return;
} else {
set.forEach(function(elem) {
permuteString(diff(set, elem), perm + elem);
});
}
}
function print(value) {
value = '{' + [].slice.call(value).join(', ') + '}';
var elem = document.createElement('li');
elem.innerHTML = value;
document
.getElementById('output')
.appendChild(elem);
}
function diff(setA, elem) {
console.log([...setA]);
var arrayA = [...setA];
arrayA.forEach(function(arrayElem, i) {
if (arrayElem === elem) {
arrayA.splice(i, 1);
}
});
return new Set(arrayA);
}
var set = new Set([2, 3, 4]);
Set.prototype.isEmpty = function() {
return this.size === 0;
}
permuteString(set);