gpt4 book ai didi

Javascript fisher-yates 帮助

转载 作者:行者123 更新时间:2023-11-30 19:58:19 25 4
gpt4 key购买 nike

我是一般编码的新手,现在已经使用 javascript 有一段时间了 - 对于我在发布此问题时可能犯的任何失误,提前致歉。我研究了 2 个小时的大部分时间,无法自己得出答案,所以我在这里注册了一个帐户。

我遇到了 this答案/代码,并且正在努力理解代码的某些方面。我让它在我的代码中工作,但我想围绕我不太了解的特定方面进行思考。

具体来说,我不明白 1) 当变量被分配了 3 个定义时如何工作,每个定义后跟一个逗号 - 变量指的是哪个?一旦在脚本末尾定义了所有分配,它如何知道接下来要使用哪个?

2) 我需要对“开关”部分及其工作原理进行一些说明。如何根据上一个依次定义每个,鼓励代码切换?

非常感谢您。

最佳答案

这只是声明了三个变量名,但只分配了currentIndextemporaryValuerandomIndex 此时未定义,稍后会用到:

var currentIndex = array.length, temporaryValue, randomIndex;

这等同于:

var currentIndex = array.length;
var temporaryValue;
var randomIndex;

交换变量的困难之一(在 JS 有很好的解包/解构之前)是你不能一步完成。

例如,如果您有:

let a = "foo";
let b = "bar";

并且您想交换它们。一旦你说 a = b,你就不再知道 a 以前的值是什么,因为你只是覆盖了它。解决方案是使用一个临时变量来保存旧的a:

let a = "foo";
let b = "bar";

// swap
let temp = a // remember old a value
a = b // replace a
b = temp // replace b with the original a

现在你可以简单地使用:

let a = "foo";
let b = "bar";

[a, b] = [b, a]; //Swap in one step

console.log(a, b)

关于Javascript fisher-yates 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53687978/

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