2012-03-12 9 views
0

splitメソッドを使用して時間を配列に格納し、時間を秒に変換するメソッドがjavascriptで使用されています。しかし、私がデバッグすると、配列は常に最初の2つの要素を持ち、最後の要素は無視します。理由は分かりませんか?Javascript Splitメソッドが期待どおりに動作しない

GetSeconds : function (time) {      
    var timesecs = 0; 
    var min = 1;     
    var timeArray = time.split(ctx.options.separator); //this always contain 2 elements 

    while (timeArray.length > 0) { 
     timesecs += min * parseInt(timeArray.pop()); 
     min *= 60; 
    } 
    return timesecs;      
} 

ctx.options.separatorは、区切り文字を格納する変数です。私は ":"で試していて、時間は "00:00:00"でした。このメソッドは、2番目のメソッドをインクリメントする別のメソッドから呼び出されます。

IE、Chrome、Firebugで試しました。これは、Visual Studio(このコードは私の.netアプリケーションにあります)を使用してデバッグすると、動作が異なります

答えて

1

私はfiddleを試しましたが、すべて正常に動作します。あなたは確かですか?ctx.options.separatorは期待通りに動作しますか?

+0

私はChrome17とIE9で試しました –

+0

ありがとう!!実際、問題は 'parseInt(timeArray.pop())'にありました。 parseIntは8より大きい値を解析できませんでした。10の底を 'parseInt(timeArray.pop()、10)'として使う必要があります。また、私はtimeArray.pop()を見ていたと思います。 –

+0

奇妙なparseIntはどのような種類の基数が8にデフォルト設定されていますか? –

0

ctx.options.separatorが適切に生成されている場合、この問題はブラウザの問題です。 どのブラウザを使用していますか?

このクロスブラウザ方式を使用すると、使用するブラウザに関係なくすべてが正常に動作します。 http://blog.stevenlevithan.com/archives/cross-browser-split

いつも私のために働いています。

関連する問題