JavaScriptで手っ取り早く64bit符号なし整数文字列の大小関係を比較
JavaScriptが53bitまでしか整数をまともに扱えないのはよく知られた話です.
JavaScriptの整数の精度が保たれるのは9007199254740991まで - Qiita
Twitterからのレスポンスは
id_str:'12345678765543212345'
のように文字列でJSONが降ってきます.
これをそのまま大小関係を比較するのはよくありません.
javascript 文字列のまま数字を比較すると危険が危ない。 - かもメモに詳しいように
'99'<'100' // false
となります.
しかし64bit整数は数値に変換しても不正確になるジレンマがあります.
そこで,
// ES5版 const pad0 = function(num){return ('00000000000000000000'+num).slice(-20)} // ES6版 const pad0 = num => ('0'.repeat(21)+num).slice(-20) pad0('99')<pad0('100') // true
という強引な解決策を提案します
'99'>'100'
となる理由は桁が揃ってないから起こるのであり,桁を揃えてしまえばいいのです.