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;
}