|
Полный перебор символов
Уважаемые знатоки, подскажите пожалуйста как сгенерировать и запушить в массив строку состоящую из символов массива arr
var arr = ['A','B','C','D','E'] должно получится var comb = [AAAA, AAAB, AAAC..... AABA, AABB....] итд пока все не закончится строкой EEEE в общем нужен массив строк длинною в 4 символа все различно возможных комбинаций. |
VSEM-DOBRA,
перебор вариантов es6 |
рони,
Это совсем другое. тут комбинаций будет намного больше, т.к. символ может использоваться сколько угодно раз, а не один. |
VSEM-DOBRA,
Нужен массив комбинаций наподобие брутфорса пароля только из символов вашего arr? |
Цитата:
|
j0hnik,
Да Все верно =) Хелп рони, не работает <!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <script> function combinator(matrix){ return matrix.reduceRight(function(combination, x){ var result = []; [...x].forEach(function(a){ [...combination].forEach(function(b){ result.push(a + b); }); }); return result; }); }; document.write( JSON.stringify(combinator(['A','B','C','D','E'])) ); </script> </body> </html> =((( |
VSEM-DOBRA,
<script> "use strict" var arr = ['A','B','C','D','E']; function combinator(matrix){ return matrix.reduceRight(function(combination, x){ var result = []; [...x].forEach(function(a){ [...combination].forEach(function(b){ result.push(a + b); }); }); return result; }); }; document.write( JSON.stringify(combinator(Array.from({length : 4}, () => arr ))) ); </script> |
Первое что приходит в голову это циклы, но будет 3 вложенных цикла, не знаю насколько правильный это ход, но производительность будет максимальное (я так думаю). м.б рони возразит?
|
рони,
Красивый код =) ;) |
По мне так жуть, яб посмотрел как чувак преподу объясняет как он дошёл до такого извращения вместо простых человеческих циклов.)
|
Часовой пояс GMT +3, время: 15:22. |
|