Toy/ケースの数


質問する
加入[1,2,3]
[1,2,3],[1,3,2],[2,1,3],[3,1,2],[3,2],[3,2,1]の場合のカウントは戻る
イベント発生

76番を見るとキャサルはたくさん受け取りますが、
ケースは空の配列で出力されます.
85回のpop()がケースに影響を及ぼしたようだ.
次は対応するコードです.
let cases = []

const makeCase = (numArr, caseArr) => {
  if (caseArr.length === 3) {
    cases.push(caseArr) // cases에 push
    return
  }
  for (let i = 0; i < numArr.length; i++) {
    let copyArr = [...numArr]
    caseArr.push(numArr[i])
    copyArr.splice(i, 1)
    makeCase(copyArr, caseArr)
    caseArr.pop()
  }
}
makeCase([1, 2, 3], [])

console.log(cases)
解決する
なぜコミュニケーションが活発な開発者のオープンチャットと関連があるのかを聞いた.
连动したくないとコピーして入れた返事を闻いて、すぐに実践しました.
let cases = []

const makeCase = (numArr, caseArr) => {
  if (caseArr.length === 3) {
    cases.push(caseArr) // cases에 push
    return
  }
  for (let i = 0; i < numArr.length; i++) {
    let copyArr = [...numArr]
    caseArr.push(numArr[i])
    copyArr.splice(i, 1)
    answer = [...caseArr] // 추가한 부분
    makeCase(copyArr, answer)
    caseArr.pop()
  }
}
makeCase([1, 2, 3], [])

console.log(cases)
再帰関数を書くのは久しぶりで面白いですね
細かく計算するので時間がかかりますが満足です.
popを作った以上、なぜ上の関数が影響を受けるのでしょうか.