У меня есть два фрагмента кода, которые я написал, полагаю, они должны работать одинаково.Как вы можете заметить, единственное, что отличается между ними - это объявление цикла for.
Почему код с for-in не работает должным образом?
Заранее спасибо.
const allPermutations1 = s => {
let permutations = []
const recursion = (s, p = '') => {
if (s.length === 0) return permutations.push(p)
for (let i = 0; i < s.length; i++)
recursion(s.slice(0, i) + s.slice(i+1), p + s[i])
}
return (recursion(s), permutations)
}
allPermutations1('123') // ["123", "132", "213", "231", "312", "321"]
const allPermutations2 = s => {
let permutations = []
const recursion = (s, p = '') => {
if (s.length === 0) return permutations.push(p)
for (let i in s)
recursion(s.slice(0, i) + s.slice(i+1), p + s[i])
}
return (recursion(s), permutations)
}
allPermutations2('123') // ["123", "132", "21", "312", "321"]