JSFiddle - React, Tailwind, and code Playground

HTML

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
    <input id="kanaFullText" value="エンラプト" type="text"/>
    <button type="button" onclick="convertKanaF2H(document.getElementById('kanaFullText'))">Convert Fullwidth To Halfwidth</button>
    <br/>
    <input id="kanaHalfText" value="エンラプト" type="text"/>
    <button type="button" onclick="convertKanaH2F(document.getElementById('kanaHalfText'))">Convert Halfwidth To Fullwidth</button>
</body>

JavaScript

function convertKanaF2H(str) {
    str.value = replaceStringByArrayOfIndex(str.value, WKANA, HKANA);
}
function convertKanaH2F(str) {
    str.value = replaceStringByArrayOfIndex(str.value, HKANA2, WKANA2);
}
function replaceStringByArrayOfIndex(str, src, dest) {
    var len = src.length;
    for (var i = 0; i < len; i++) {
        str = replaceAll(str, src[i], dest[i])
    }
    return str;
}

function replaceAll(target, from, to) {
    console.log(target+" "+from+" "+to);
    if (target.indexOf(from) < 0) {
        return target;
    } else {

        return target.split(from).join(to)
    }
}

var HKANA = new Array(
    "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ",
    "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "ビ", "ブ", "ベ", "ボ", "ヴ", //濁音
"パ", "ピ", "プ", "ペ", "ポ", //半濁音
"ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ー", "", // 小文字
"ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", // 50音
"サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト",
    "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ",
    "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ",
    "ラ", "リ", "ル", "レ", "ロ", "ワ", "", "ヲ", "", "ン" // 50音 end
);

var HKANA2 = new Array(
    "ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ",
    "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "ビ", "ブ", "ベ", "ボ", "ヴ", //濁音
"パ", "ピ", "プ", "ペ", "ポ", //半濁音
"ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ー", // 小文字
"ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", // 50音
"サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト",
    "ナ", "ニ", "ヌ", "ネ", "ノ", "ハ", "ヒ", "フ", "ヘ", "ホ",
    "マ", "ミ", "ム", "メ", "モ", "ヤ", "ユ", "ヨ",
    "ラ", "リ", "ル", "レ", "ロ", "ワ", "ヲ", "ン" // 50音 end
);

var WKANA = new Array( 
"ガ", "ギ", "グ", "ゲ", "ゴ", "ザ", "ジ", "ズ", "ゼ", "ゾ",
    "ダ", "ヂ", "ヅ", "デ", "ド", "バ", "ビ", "ブ", "ベ", "ボ", "ヴ", //濁音
"パ", "ピ", "プ", "ペ", "ポ", //半濁音
"ァ", "ィ", "ゥ", "ェ", "ォ", "ャ", "ュ", "ョ", "ッ", "ー", "ヮ", // 小文字
"ア", "イ", "ウ", "エ", "オ", "カ", "キ", "ク", "ケ", "コ", // 50音 start
"サ", "シ", "ス", "セ", "ソ", "タ", "チ", "ツ", "テ", "ト",
 ...