JSFiddle - React, Tailwind, and code Playground

JavaScript

function permutator(inputArr) {
  var results = [];

  function permute(arr, memo) {
    var cur, memo = memo || [];

    for (var i = 0; i < arr.length; i++) {
      cur = arr.splice(i, 1);
      if (arr.length === 0) {
        results.push(memo.concat(cur));
      }
      permute(arr.slice(), memo.concat(cur));
      arr.splice(i, 0, cur[0]);
    }

    return results;
  }

  return permute(inputArr);
}

function checker(arr, amount, total) {
  var add = function (a, b) { return a + b; }
  return permutator(arr).map(function(arr) {
    var ns = arr.slice(0, amount);
    var sum = ns.reduce(add);
    return {
      n: ns,
      t: sum,
      e: sum === total
    }
  });
}
console.log(JSON.stringify(checker([1, 2, 3, 4], 3, 9), null, 2))