JSFiddle - React, Tailwind, and code Playground
by kon_yu
JavaScript
console.log("aaaa")
const dic = {"コーデ": "服装", "アメカジ": "アメリカ人っぽい"}
const twowords = (word, dic, index, min) => {
if(index < min || word.length < min){
return word
}
// TODO そもそも1つのメソッドにできそう?
// TODO 短すぎるときの処理
const back = word.substr( - index )
console.log(index)
console.log(back)
const forward = word.substr(0,word.length - index )
console.log("前方の単語:"+ forward)
let rtnStr = ""
const changedWord = checkDic(back, dic)
if( changedWord === null){
return twowords(word, dic, index -1, min)
} else {
const changedFrontWord = checkDic(forward, dic)
if( changedFrontWord === null){
rtnStr += forward + changedWord
} else {
rtnStr += changedFrontWord + changedWord
}
return rtnStr
}
}
const checkDic = (word, dic) => {
const changedWord = dic[word]
if(changedWord !== undefined){
// TODO: Debub modeでconsole.logを出力する
console.log("\"" + word + "\"を\"" + changedWord + "\"に変換")
return changedWord
} else {
return null
}
}
/* 2ワードとも辞書がある */
/* const word = "アメカジコーデ" */
/* 後方のみキーワードがある */
/* const word = "カジュアルコーデ" */
/* 前方のみキーワードがある場合は諦める */
/* const word = "アメカジカジュアル" */
/* 両方ともキーワードがない場合 */
/* const word = "ウンコカジュアル" */
/* 文字数が短すぎる場合*/
/* const word = "うん" */
/* 1ワードで住む場合 */
const word = "アメカジ"
console.log("出力結果: " + twowords(word, dic, 4, 3))