【发布时间】:2016-10-12 01:51:12
【问题描述】:
JS 新手,目前正在大学学习。对于我目前的 JS 项目,我正在构建一个记忆卡游戏。我开始思考如何随机洗牌,我接近了 Fisher-Yates Shuffle 算法所做的事情——this page 上的第二个程序。但是,我不明白 [0] 在拼接方法之后究竟做了什么。是移动/压缩数组的原因吗?如果是,我找不到其他相关示例/文档。
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;
}
【问题讨论】:
标签: javascript arrays shuffle splice