我一直在通过创建一个二十一点游戏来自学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