2012-02-09 13 views
0

申し訳ありませんが、私が働いている誰かがどこかで構文を壊しました。どこからデバッガが私にエラーとしていくつかランダムなgarbleを与えています。とにかくここに関数がありますが、どこかで括弧がありませんが、これは何らかの理由で私を避けているだけです。javascriptの壊れた構文

var sort_by = function(field, reverse, primer) { 

    var key = function (x) {return primer ? primer(x[field]) : x[field]}; 

    return function (a,b) { 
     var A = key(a), B = key(b); 
     return ((A < B) ? -1 : (A > B) ? +1 : 0)) * [-1,1][+!!reverse];     
    } 
} 

答えて

3

ライン

return ((A < B) ? -1 : (A > B) ? +1 : 0)) 

に余分な閉じかっこがありますが、とにかくデバッガエラーを提供することができればそれは有用であろう

return ((A < B) ? -1 : (A > B) ? +1 : 0) ...etc 
1

でなければなりません。私はクロームデベロッパーコンソールでそれをexectued、それがエラーを与えた:

return ((A < B) ? -1 : (A > B) ? +1 : 0)) * [-1,1][+!!reverse]; 

あなたがアンバランス括弧を持っている:それは簡単にこの破線を見つけるために作られた

SyntaxError: Unexpected token)

。それは以下のようになります:

return ((A < B) ? -1 : (A > B) ? +1 : 0) * [-1,1][+!!reverse]; 
1

ここに1つの余分な閉じ括弧があります。それを除く。

return ((A < B) ? -1 : (A > B) ? +1 : 0)) * [-1,1][+!!reverse];

また、セミコロンのすべて。

var sort_by = function(field, reverse, primer) { 
    var key = function(x) { 
     return primer ? primer(x[field]) : x[field]; 
    }; 

    return function(a, b) { 
     var A = key(a), B = key(b); 
     return ((A < B) ? -1 : (A > B) ? +1 : 0) * [-1, 1][+!!reverse];     
    }; 
};