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

时间:2018-08-11 00:59:18

标签: javascript performance coding-efficiency

给定整数0-24,我必须将它们转换为以弧度为单位的弧度theta作为字符串。例如:0 ='0',1 ='pi / 12',2 ='pi / 6'等。pi应该是实际的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符号。

1 个答案:

答案 0 :(得分:1)

将pi符号直接放在数组的字符串中。

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

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

然后功能很简单:

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