앞 음절에 받침이 있으면 '-이/-을/-은/-과',
받침이 없고 모음으로 끝나면 '-가/-를/-는/-와'가 된다.

이렇게 쭉 나열해서 보면 받침이 없는 글자부터 시작해, 모든 받침을 한번씩 순회하고 28번만에 받침이 없는 다음 모음 글자로 돌아오는것을 볼 수 있다. 구하려는 현재 글자값에서 한글이 시작되는 부분을 뺀 후, 이를 28로 나누어 그 나머지를 보면 받침이 있는지 없는지 확인 할 수 있다.
AC00를 시작으로 10진수 숫자로 계산 할시, (16^3)*10+(16^2)*12+16*0+0 = 44032
즉, 44032 값이 나온다.
const main = (name) => {
const charCode = name.charCodeAt(name.length - 1)
const consonantCode = (charCode - 44032) % 28
if(consonantCode === 0){
// -가/-를/-는/-와
return `${name}를`
}
// -이/-을/-은/-과
return `${name}을`
}
console.log(main('오렌지'))