JSFiddle - React, Tailwind, and code Playground
JavaScript
var a = [1, 2, 3, 8, 7, 4], k;
k = ProcessArrayCombinations(a);
console.log(k);
function ProcessArrayCombinations(array = []) {
var status = [], results = [];
for (var i in array) {
status.push(false);
}
var elementCount = status.length,
trues = 0;
while (trues < elementCount) {
let index = 0,
stop = false,
summ = 0,
tmpa = [];
while ((!stop) && (index < elementCount) && (status[index])) {
status[index] = false;
trues--;
index++;
}
status[index] = true;
trues++;
for (var i = 0; i < elementCount; i++) {
if (status[i]) {
summ += array[i];
tmpa.push(array[i]);
}
}
if (summ == 10) {
results.push(tmpa);
}
}
return results;
}