我正在寫一個數組打亂了項目的功能:在使用臨時變量的for循環
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 = ...
只是好奇,如果有什麼明顯的,我做錯了,或者如果有一個最佳實踐在這些情況下。
的「臨時變量」您創建的性能自執行X號。如果你要刪除它們,只需使用'var'。我不會擔心表現,因爲那是他們的目標。 – Dennis 2012-07-29 20:54:44
此外,您的shuffle算法具有高度的可預測性。我建議看看使用[真正的洗牌算法](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)。 – 2012-07-29 20:56:58
@GregHewgill我認爲他想要一個完美的洗牌,因爲他從來沒有使用隨機任何字 – hackartist 2012-07-29 21:01:51