繁体   English   中英

如何在我的代码中停止无限循环?

[英]How can I stop a infinitie loop in my code?

所以我是新手,我正在尝试在 React 中创建一个滑动拼图,到目前为止我有一个数组,我试图将其打乱,循环所在的位置,我使用 lodash 将数组分成四个。 但是我需要停止在 newArr 上运行的那个循环,任何可以帮助我理解如何做到这一点的人?

当我更新页面 newArr 时,它会运行多次,以及当我使用 shuffle btn 对瓷砖板进行洗牌时,我该如何编写以便 getShuffledArr 仅在更新或洗牌时运行一次?

 const sortedArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]; const getShuffledArr = () => { const newArr = sortedArray.slice(); for (let i = newArr.length - 1; i > 0; i--) { const rand = Math.floor(Math.random() * (i + 1)); [newArr[i], newArr[rand]] = [newArr[rand], newArr[i]]; console.log("newArr", newArr); } let newPuzzle = newArr return newPuzzle }; const newPuzzle = getShuffledArr() // this gives four arrays of the shuffled one const newPuzzleArr = () => { let puzzleArr = _.chunk(newPuzzle, 4) console.log("getNewArray", puzzleArr); return puzzleArr } newPuzzleArr()
 <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.js"></script>

由于您已经在使用 lodash,那么您可以使用_.shuffle(arr)方法。 https://lodash.com/docs/4.17.15#shuffle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM