Код для подбора всех комбинаций?

Для генерации комбинаций в JavaScript можно использовать различные подходы и алгоритмы. В данном ответе я рассмотрю самый простой и понятный способ - рекурсивную функцию.

Для начала, определимся, что мы хотим подобрать комбинации элементов из заданного набора. Например, пусть у нас есть массив чисел [1, 2, 3], и мы хотим получить все возможные комбинации из этих чисел. В результате получим следующие комбинации:
- [1]
- [2]
- [3]
- [1, 2]
- [1, 3]
- [2, 3]
- [1, 2, 3]

Теперь перейдем к коду. Наш алгоритм будет следующим:
1. Создаем пустой массив result, в котором будем хранить все комбинации.
2. Создаем рекурсивную функцию generateCombinations, которая принимает три аргумента: source, currentCombination и currentIndex.
3. Внутри функции проверяем условие выхода из рекурсии. Если currentIndex становится больше или равно длине source, то добавляем текущую комбинацию в result и выходим из функции.
4. Если условие выхода не выполняется, то для каждого элемента source начиная с currentIndex, вызываем рекурсивно функцию generateCombinations, передавая в качестве аргументов измененные значения currentCombination (добавляем в нее текущий элемент) и currentIndex (увеличиваем на 1).
5. По завершению работы функции generateCombinations, возвращаем массив result.

Давайте реализуем этот алгоритм в коде:

function generateCombinations(source) {
  var result = [];
  generate([], 0);
  
  function generate(currentCombination, currentIndex) {
    if (currentIndex >= source.length) {
      result.push(currentCombination);
      return;
    }
    
    generate(currentCombination.concat(source[currentIndex]), currentIndex + 1);
    generate(currentCombination, currentIndex + 1);
  }
  
  return result;
}

var source = [1, 2, 3];
var combinations = generateCombinations(source);
console.log(combinations);

При запуске этого кода в консоли браузера вы увидите массив со всеми комбинациями чисел [1, 2, 3].