gpt4 book ai didi

javascript - 如何使用Js洗一副牌

转载 作者:行者123 更新时间:2023-12-03 07:24:46 25 4
gpt4 key购买 nike

我搜索了如何洗我制作的一副纸牌,并找到了这些行,但我无法理解......

  1. 第二行写的(this)是一个js关键字还是不仅仅是一个给定的名称
  2. m如何存储deck.length + i
  3. 第六行末尾的 m-- 表示什么
  4. 第8行的作用是什么

    shuffle() {
    const { deck } = this;
    let m = deck.length, i;

    while (m) {
    i = Math.floor(Math.random() * m--);

    [deck[m], deck[i]] = [deck[i], deck[m]];
    }

    return this;
    }

我知道有很多问题要问,但我会感谢你的帮助

最佳答案

is (this) that is written in the second line a js keyword or it't just a given name

是的,this 是 JavaScript 中的关键字。我强烈建议您搜索“this javascript”来了解 this 的工作原理。您需要一些时间来恢复头脑。

how does m stores deck.length + i

我假设您问的是let m = Deck.length, i;。请注意,有一个 ,,而不是 +m 仅存储deck.lengthi 是在此行声明的单独变量。我建议您使用 Chrome 或 Firefox 开发者工具单步执行代码来检查 m 的值。如果您不熟悉这些工具,您绝对需要了解它们以及如何有效地使用它们,尤其是调试代码。

what does m-- means at the end of the sixth line

-- 是后自增运算符。它将 m 的值减 1,并将新值存储在 m 中。减法后的结果用于表达式的其余部分。您可以在自己的代码或 JavaScript 控制台中试验此运算符。

what is the function of line no.8

[deck[m], Deck[i]] = [deck[i], Deck[m]]; 使用解构语法来交换数组中的两个值。同样,您可以使用浏览器开发人员工具中的调试器来检查变量的值,看看会发生什么。

关于javascript - 如何使用Js洗一副牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62311237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com