2017-05-11 9 views
0

私はバグのArray.prototype.sortを提供するように思われるJavascriptインタプリタを使用しています(少なくともテスト目的のために)これを置き換えたいと思います。組み込みプロトタイプの代替品の書き方は?

私は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言語のようなエンジンベースのエンジンに勝るものは何もないと考えてください。 –

関連する問題