<script>
var arr = ['A','B','C','D','E'];
var x = 0;
function fn(e, k) {
for (var f = [], c = e.length, g = 0;; g++) {
var b = g.toString(c);
if (b.length > k) break;
b = [...b.padStart(k,"0")].reduce((a,d) => {
x++;
return (d = parseInt(d, c), a + e[d]);
},"");
f.push(b);
}
console.log(x);
return f;
}
document.write(fn(arr, 4).join('<br>'));
</script>
Рони, не многовато ли итераций??
как то можно ведь оптимизировать?