2017-05-11 6 views
0

나는 버그 Array.prototype.sort을 제공하는 자바 인터프리터를 사용하고 있는데, 적어도 테스트 목적으로 바꾸고 싶습니다.빌드 인 프로토 타입을 대체하는 방법은 무엇입니까?

나는 mySort(array, comparator) 함수를 가지고 있는데, 어떻게 함수를 만들 수 있습니까 array.sort(comparator)처럼 작동합니까?

또한 기본 비교기를 제공해야하며 간단한 return a<b ? -1 : a>b ? +1 : 0으로 충분합니까?

그리고 더 많은 문제가있을 수 있습니다.

부탁드립니다. 간단한 정렬이 가능하지만 잘 테스트 된 코드로 대체 할 수 있습니다.

+0

당신은 기본 프로토 타입을 대체 할 수 있지만 –

답변

3
Array.prototype.sort=function(comp){ return mySort(this,comp);}; 

또는 사용하여 사용자 정의 배열 :

myArray=Object.create(Array.prototype); 
myArray.sort=function(comp){ return mySort(this,comp);}; 

example=Object.create(myArray); 
example.push(1,2); 
example.sort(); 
+0

감사합니다이 경우에는 나쁜 생각입니다. 간단하지? ;) 사용자 정의 배열이 없기 때문에 정렬 함수가 손상되었을 가능성이 있습니다 (그렇지 않은 경우에도 상황을 파악하기 위해 대체해야합니다). +++ 기본 비교기는 어떻습니까? – maaartinus

+0

@maaartinus : 나에게 잘 어울리는 군 ... –

+0

@maaartinus : 성능에 관한 코드를 기반으로하는 엔진 (C와 같은 모국어로)을 이길 수 없다는 점을 고려해야합니다. –