为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇湘沐 2022-06-05 16:29:53
所以我是新手,我试图在反应中创建一个滑动拼图,到目前为止,我有一个数组,我试图洗牌,循环在哪里,我使用 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 oneconst 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>
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

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


查看完整回答
反对 回复 2022-06-05
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信