質問: 'ふ'; break; default: break; } ``` 追記 データは連想配列の配列で持っています。 ``` Array[{name: "名前", furigana:"ひらがなのふりがな"}, {name: "名前", furigana:"びらがなのふりがな"}, {name: "名前", furigana:"あひらがなのふりがな"}, {name: "名前", furigana:"いひらがなのふりがな"}, ・・・] ``` 上記配列に対して、「ひ」から{name: "名前", furigana:"ひらがなのふりがな"}, {name: "名前", furigana:"びらがなのふりがな"}のように取り出したいです。 現状は、furiganaの1文字目が「び」だったらswitch文で「ひ」に変換して マッチするかどうかをみています。「び」をいちいち「ひ」にする処理がいまいちで 網羅的に手作業で作らないといけないですし。何かよい手はないかと。 ネット銀行で、あいうえおの表をクリックすると銀行名が出てきますが 濁音で始まる銀行名はどうやってマッチさせているのか?うまい方法は あるのかといった疑問です。
回答: ``` const M = new Map, D = [ {name: "名前1", furigana:"ひらがなのふりがな"}, {name: "名前2", furigana:"びらがなのふりがな"}, {name: "名前3", furigana:"あひらがなのふりがな"}, {name: "名前4", furigana:"いひらがなのふりがな"} ]; 'かが きぎ くぐ けげ こご さざ しじ すず せぜ そぞ ただ ちぢ つづ てで とど はばぱ ひびぴ ふぶぷ へべぺ ほぼぽ' .split (/\s/g).forEach (a => M.set (a[0], new RegExp ('^(' + a.split ('').join ('|') + ')'))); function getReg (f) { return M.has (f) ? M.get (f): new RegExp ('^' + f); } let rst = D.filter (function (a) { return this.test (a.furigana) }, getReg ('ひ')); console.log (rst); ```