/** * オブジェクトのkeyとvalueを反転させる * @param {Object} obj 反転させるオブジェクト * @param {Boolean} [keyIsNumber=false] keyが数値であるか?(数値ならkeyを反転させるとき数値に変換する) * @return {Object} keyとvalueの反転したオブジェクト */ function inverseObject (obj, keyIsNumber) { return Object.keys(obj).reduceRight(function (ret, k) { return (ret[obj[k]] = keyIsNumber ? parseInt(k, 10) : k, ret); }, {}); } var obj = { foo: 'bar', bar: 'foo', }, inv = i