2017-08-28 21 views
1

私はCodi​​lityからの挑戦に苦労していましたが、なぜMinAbsSumOfTwoチャレンジがC#の同じアルゴリズムで動作するのか理解できませんが、Javascriptでは動作しません。Codility MinAbsSumOfTwo in Javascript

JS(54/100)での実装の結果ページには、linkがあります。

ここでは、C#(100/100)での実装の結果ページへのlinkです。

は、私は私のマシンでextreme_largearithmetic_mediumテストをシミュレートしようとしたが、両方は私に期待した結果得られます。

it('should return 1002 for arithmetic medium',() => 
    { 
    const arithmetic = [] 
    let value = -5010000 

    for(let i = 0; i < 10000; i++) 
     arithmetic.push(value += 1002) 

    assert.equal(solution(arithmetic), 1002) 
    }) 

    it('should return 1999999994 for sequence of MAX_INT',() => 
    { 
    const maxIntSequence = [] 

    for(let i = 0; i < 100000; i++) 
     maxIntSequence.push(999999997) 

    assert.equal(solution(maxIntSequence), 1999999994) 
    }) 

誰が助けることができれば、私は本当に感謝を!

+1

'absOrder'メソッドが無効です。 ['Array.sort'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort)は、コンパイラ関数がブール値ではなく数値を返すことを期待しています – Hamms

+0

絶対に正しい!どうもありがとうございます!私はそれを右にマークすることができますので、これを答えてください:) – demarchisd

答えて

1

absOrderメソッドが無効です。 Array.sortは、コンパレータ関数がブール値ではなく数値を返すことを期待しています。

A.sort((a,b) => Math.abs(a) - Math.abs(b))