Week 3 Exercise 1
by Donal Devine
JavaScript
var foo = function(string) {
function recur(string, prefix) {
if (string.length === 0) {
return [prefix];
} else {
var out = [];
for (var i = 0; i < string.length; i++) {
var pre = string.substring(0, i);
var post = string.substring(i + 1);
out = out.concat(recur(pre + post, string[i] + prefix));
}
return out;
}
}
var distinct = {};
recur(string, "").forEach(function(result) {
distinct[result] = true;
});
return Object.keys(distinct);
};
var line = "hat";
alert(foo(line));