Задать вопрос
@Arturchick

Как написать функцию которая возвращает все комбинации, меняя одну цифру в строке?

Как написать функцию в языке javascript которая принимает строку состоящую из цифр и возвращает все возможные комбинации изменяя только одну цифру
например функция принимает '10' на выходе возвращает [00,10,20,30,40,50,60,70,80,90, 11,12,13,14,15,16,17,18,19]
  • Вопрос задан
  • 243 просмотра
Подписаться 1 Простой 2 комментария
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const xxx = ([...str]) => [...new Set(Array.from(
  { length: str.length * 10 },
  (n, i) => str.map((m, j) => (j === (i / 10 | 0)) ? i % 10 : m).join('')
))];

или

function xxx(str) {
  const arr = str.split('');
  const result = [ str ];

  for (const [ i, n ] of arr.entries()) {
    for (let j = 0; j < 10; j++) {
      if (j !== +n) {
        arr[i] = j;
        result.push(arr.join(''));
      }
    }

    arr[i] = n;
  }

  return result;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abberati
frontend-разработчик
const fn = string =>
  Array.from({ length: string.length }, (_, i) =>
    Array.from({ length: 10 }, (_, j) => string.slice(0, i) + j + string.slice(i + 1))
  ).flat()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы