[過去ログ]
プログラミングのお題スレ Part13 (1002レス)
プログラミングのお題スレ Part13 http://mevius.5ch.net/test/read.cgi/tech/1549160513/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
660: さまよえる蟻人間 ◆T6xkBnTXz7B0 [age] 2019/03/14(木) 10:59:38.01 ID:PwP2txgq >>653 大小関係の定義をまじめに考えましょう。 >>659 JavaScriptならsplit使えるはず。桁数の制限は要らない。 http://mevius.5ch.net/test/read.cgi/tech/1549160513/660
676: デフォルトの名無しさん [sage] 2019/03/14(木) 19:55:29.27 ID:YiVNNcx0 >>660 javascript const vComp = (a, b) => { const verA = a.split`.`; const verB = b.split`.`; const shorter = verA.length - verB.length < 0 ? verA : verB; const cmps = shorter.map((v, i) => Math.sign(verA[i] - verB[i])); return cmps.reduce((acc, v, i) => Math.sign(acc + v * 2 ** (shorter.length - i)), 0); }; console.log(vComp('0.1.2', '0.0')); console.log(vComp('1.2.3', '1.3')); console.log(vComp('0.0.0', '0.0')); 結果: 1 -1 0 (おまけ)ソート: console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp)); 結果: ["0.0", "0.0.0", "0.0", "0.1.2", "1.2.3", "1.3"] http://mevius.5ch.net/test/read.cgi/tech/1549160513/676
684: デフォルトの名無しさん [sage] 2019/03/14(木) 20:52:19.11 ID:YiVNNcx0 >>660 の修正 const vComp = (a, b) => { let verA = a.split `.`; let verB = b.split `.`; const len = Math.max(verA.length, verB.length); verA = [...verA, ...'0'.repeat(len - verA.length)]; verB = [...verB, ...'0'.repeat(len - verB.length)]; const cmps = verA.map((v, i) => Math.sign(verA[i] - verB[i])); return Math.sign(cmps.reduce((acc, v, i) => acc + v * 2 ** (len - i)), 0); }; console.log(vComp('0.1.2', '0.0')); console.log(vComp('1.2.3', '1.3')); console.log(vComp('0.0.0', '0.0')); console.log(['0.1.2', '0.0', '1.2.3', '1.3', '0.0.0', '0.0'].sort(vComp)); //いいかげん結果省略 http://mevius.5ch.net/test/read.cgi/tech/1549160513/684
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.039s