Показать сообщение отдельно
  #9 (permalink)  
Старый 04.11.2018, 04:00
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Данный вариант не претендует на лучший
Это пример подхода
<script>
const combinator = matrix => matrix.reduceRight((prev, current) => {
  var result = []
  current.forEach(a => prev.forEach(b => result.push([a].concat(b))))
  return result
})
const arr = [1, 2, 3, 4]
const data = (new Array(4)).fill(arr)
const result = combinator(data)
  .filter(v => !/(\d).*\1+/.test(v.join('')) && (v[0] < 2 || (v[0] === 2 && v[1] < 4)))
  .map(([a, b, c, d]) => `${a}${b}:${c}${d}`)
document.write(JSON.stringify(result))
</script>

Последний раз редактировалось Vlasenko Fedor, 04.11.2018 в 04:18.
Ответить с цитированием