给定整数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符号。
答案 0 :(得分:1)
将pi符号直接放在数组的字符串中。
const fracStrings = ['0', 'π/12', 'π/6', ...];
或
const fracStrings = ['0', '\u03C0/12', '\u03C0/6', ...];
然后功能很简单:
function nToString(n) {
return fracStrings[n];
}