【发布时间】:2018-09-27 02:56:25
【问题描述】:
所以这是一个语法问题,我一直在阅读 MDN 文档,但找不到类似的示例。我在阅读随机数组时从这里得到了这个特殊的代码 sn-p:https://bost.ocks.org/mike/shuffle/。
这是完整的功能:
function shuffle(array) {
var copy = [], n = array.length, i;
// While there remain elements to shuffle…
while (n) {
// Pick a remaining element…
i = Math.floor(Math.random() * n--);
// And move it to the new array.
copy.push(array.splice(i, 1)[0]);
}
return copy;
}
现在,我已经使用它并对其进行了修改以满足我的需要,并且效果很好(尽管拼接是一场噩梦,因为它一直在破坏我的原始数据)但这里的重点是这一行:
copy.push(array.splice(i, 1)[0]);
我讨厌不理解一些看似基本的东西,但在这种情况下 [0] 做了什么?如果我把它拿出来,整个东西都会坏掉,但我不确定它是拼接的一部分,还是推送的一部分,或者它是否是新数组或拼接数组的索引。如果有人可以帮助阐明这一点,我将不胜感激!
【问题讨论】:
标签: javascript arrays syntax