我正在编写一个对数组中的项目进行洗牌的函数:
this.shuffle = function () {
...
首先,我得到数组的两半并设置第三个空数组:
this.leftHalf = this.cards.slice(0, this.size() / 2);
this.rightHalf = this.cards.slice(this.size() / 2);
this.result = [];
接下来,我将每一半中的一张牌放入结果数组中:
for (var i = ...) {
this.result.unshift(this.leftHalf[i]);
this.result.unshift(this.rightHalf[i]);
}
最后,我将结果数组分配给我的原始数组并删除“临时”变量:
this.cards = this.result;
delete this.leftHalf;
delete this.rightHalf;
delete this.result;
}
我的问题:这是解决此问题的明智方法,还是有不涉及设置临时变量的更好方法?我考虑过使用私有变量(但不确定它是否会带来更好的性能),如下所示:
var leftHalf, rightHalf, result;
this.shuffle = function () {
leftHalf = ...
只是好奇是否有任何明显的我做错了,或者在这些情况下是否有最佳实践。