我一直在通過創建一個二十一點遊戲來自學OOJS。一切都很順利,但由於我隨機創建了卡片,有時我創建並在一輪中處理同一張卡片兩次。我試圖通過編寫一些擺脫重複卡片的邏輯來避免這種情況。這段代碼如何擺脫重複的數組元素?
所以我發現了這個討論。
https://stackoverflow.com/a/840849/945517
和下面的代碼:
function eliminateDuplicates(arr) {
var i,
len=arr.length,
out=[],
obj={};
for (i=0;i<len;i++) {
obj[arr[i]]=0;
}
for (i in obj) {
out.push(i);
}
return out;
}
var a=[];
var b=[];
a[0]="fish";
a[1]="fishes";
a[2]="fish";
a[3]="1";
a[4]="fishes";
b=eliminateDuplicates(a);
console.log(a);
console.log(b);
我明白這是怎麼回事,一般和幾乎每行不同的是:
for (i=0;i<len;i++) {
obj[arr[i]]=0;
}
好像它是循環遍歷數組並將obj的鍵設置爲零。這裏發生了什麼,以及如何幫助擺脫開始時傳遞的數組中的重複條目?
謝謝!
(OT)'一個[0] = 「魚」;'拜託不填充陣列那樣! http://jsbin.com/cexoqo/1/edit?html,js,console,output – 2014-12-07 05:34:48
這是示例代碼,而不是我寫的代碼,我知道這不是填充數組的方式。 – heyjohnmurray 2014-12-07 19:17:46