最近我从一些网页上阅读了有关打乱数组的Javascript函数的教程。但是有些代码我没有完全理解。 例如:这里是 js fiddle
这里我不明白这段代码
this[i] = this[j] + (this[j] = this[i],0);
这是什么意思 (this[j] = this[i],0);
?
提前致谢
最佳答案
代码只是进行 1 行交换。
您熟悉标准交换,对吗?
A = 6,B = 10
X = A
A = B
B = X
现在 B = 6,A = 10
看看你的教程代码
this[i] = this[j] + (...)
表示赋值不会立即发生。相反,必须首先计算括号。但是,浏览器会暂时记下 this[j]
的值,本质上是将其复制到 X。
(this[j] = this[i],0)
现在可以计算了,但是括号返回什么要加到外面this[j]
? 0!所以在括号内,发生了第二步交换,将0添加到临时X中!
现在计算变为 this[i] = this[j] + 0
。第三步交换!
关于javascript - 关于 Javascript 数组随机播放功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35595010/