カンマで区切られた文字列の重複チェック



0   名前: さとし : 2007/08/28(火) 20:04  ID:wg8xFBNF sub-F.
JAVASCRIPT超初心者です。
たとえば、
100:99,101:09,103:99,100:01
という文字列から、コロンの前の3桁の文字の重複チェックをするにはどうすればよいでしょうか?この文字列の場合であれば、100が重複チェックにひっかかるが、99は引っかからない、という風にしたいです。初心者なもので大変困ってます。
よろしくお願いします。

1   名前: 匿名 : 2007/08/28(火) 20:04  ID:gaSskOiN sub-Cz
空の Array なり Object を用意して、

・'100:99,101:09,103:99,100:01'
 ↓
・a[100] = '99', a[101] = '09', a[103] = '99', a[100] = '01'

と順番に値を入れていく(ヒント:String#split)。このとき、a[m] に n を代入する前に、a[m] に値が入ってないかチェックする。もし値が入っていれば、m は「重複している」。

2   名前: さとし : 2007/08/28(火) 20:04  ID:wg8xFBNF sub-F.
回答ありがとうございます。
参考にさせていただきました。

3   名前: 匿名 : 2007/08/28(火) 20:04  ID:jSMHbpud sub-Cz
テストはしてない。重複してれば true。
// JavaScript 1.6 (Firefox 1.5+)

'100:99,101:09,102:99,100:01'.match (/\d+:/g)
    .some (function check (n) { if (n in check) return true; else check[n] = null; } );

一覧へ戻る