나는 블랙 잭 게임을 만들어 자신에게 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의 키를 0으로 설정합니다. 여기서 무슨 일이 일어나고 어떻게하면 처음부터 전달되는 배열의 중복 된 항목을 제거하는 데 도움이됩니까?
감사합니다.
(OT)'a [0] = "fish";'들어 가지 마라! http://jsbin.com/cexoqo/1/edit?html,js,console,output –
이것은 예제 코드이며 내가 작성한 코드가 아니며 배열을 채울 방법이 아니라는 것을 알고 있습니다. – heyjohnmurray