Показать сообщение отдельно
  #8 (permalink)  
Старый 24.05.2020, 11:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Gaara_sand1,
было [1, 2, 3]
извлекли 1 "умножили" на все комбинации [2, 3]
было [2, 3] извлекли 2 "умножили" на все комбинации [3] и т.д.
function perms(xs){
    var r=[];
    for (var i=0;i<xs.length;i++){//[1, 2, 3]
        var xs_ = xs.slice(),//[2, 3]
            x = xs_.splice(i, 1),//1
            ps = xs_.length ? perms(xs_) : [[]];//все комбинации
        r.push(...ps.map(p=>x.concat(p)));// "умножили"
    }
    return r;
}


как то так...
Ответить с цитированием