CrewCut
@CrewCut
Коплю силы на переезд в тропики

Как перебрать возможные варианты соединения строки со строками массива?

Допустим, есть строка красная шапочка и массив
1,
2,
3,
4,
5


В массиве может быть любое количество значений от 2 до 20 или более.
Нужно получить массив строк, где будет изначальная строка + элементы массива от одного до максимум четырех так, чтобы итоговый массив не содержал одинаковых значений в разном порядке (нельзя: красная шапочка 1 2 3 и красная шапочка 1 3 2) . Т.е.:
'красная шапочка 1',
'красная шапочка 1 2',
'красная шапочка 1 3',
'красная шапочка 1 4',
'красная шапочка 1 5',
'красная шапочка 1 2 3',
'красная шапочка 1 2 4',
'красная шапочка 1 2 5',
'красная шапочка 1 3 4',
'красная шапочка 1 3 5',
'красная шапочка 1 4 5',
'красная шапочка 1 2 3 4',
'красная шапочка 1 2 3 5',
'красная шапочка 1 3 4 5',
...
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
DirecTwiX
@DirecTwiX
"display: flex;" уже предлагали?
Допустим, нас сначала интересуют строки из трёх элементов. А в массиве пять элементов.
Будем рассматривать элементы вида (a, b, c), где a,b,c - индекс элемента в массиве
Сначала берём первый элемент и начинаем прибалять по едичке в конец примерно так же, как это происходит в системах счисления
1 2 3 (означает (1, 2, 3))
1 2 4
1 2 5
1 3 4 ((1, 3, 1), (1, 3, 2), (1, 3, 3) нас не интересуют, т.к. они уже были)
1 3 5
1 4 5
2 3 4
3 4 5

Вот в принципе и всё.

codepen.io/DTX/pen/oLYrVG?editors=0011
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы