如何有效地将整数转换为字符串极坐标?

How to efficiently convert an integer into string polar coordinate?

给定整数 0-24,我必须将它们转换为以弧度为单位的极坐标 theta 作为字符串。例如:0 = '0'、1 = 'pi/12'、2 = 'pi/6' 等。pi 应该是实际的圆周率符号。我认为我的解决方案效率低下。这是我的工作:

var fracStrings = ['0/1', '1/12', '1/6', '1/4', '1/3', '5/12', '1/2', '7/12', '2/3', '3/4', '5/6', '11/12', '1/1', '13/12', '7/6', '5/4', '4/3', '17/12', '3/2', '19/12', '5/3', '7/4', '11/6', '23/12', '2/1'];

function nToString(n){
     //converts angle to string representation
     var num = (fracStrings[n].split('/')[0] == 1) ? '' : fracStrings[n].split('/')[0];
     num = (fracStrings[n].split('/')[0] == 0) ? '0' : num + '\u03C0';
     var denom = (fracStrings[n].split('/')[1] == 1) ? '' : '/' + fracStrings[n].split('/')[1];
     return '' + num + denom;
 }

我发现声明分数字符串效率低下。我的问题是简化分数。我不能有 12pi/12,我只需要 pi。有没有一种有效的方法来做到这一点?看着就心疼。

仅供参考:\u03C0 是 pi 符号。

将圆周率符号直接放在数组中的字符串中。

const fracStrings = ['0', 'π/12', 'π/6', ...];

const fracStrings = ['0', '\u03C0/12', '\u03C0/6', ...];

那么函数就简单了:

function nToString(n) {
    return fracStrings[n];
}