我正在编写这段代码来将方位角度转换为人类可红色,但在度数略小于360的情况下,转换不准确。
function azimutHuman(ang) { //can be 0 - 360
var azimuthHumans = [
'Nord','Nord-NE','Nord-Est','Est-NE',
'Est','Est-SE','Sud-Est','Sud-SE',
'Sud','Sud-SO','Sud-Ovest','Ovest-SO',
'Ovest','Ovest-SO','Nord-Ovest','Nord-NO'];
return azimuthHumans[ Math.round(ang/22.5) ];
}
例如:
azimutHuman(350); //return undefined instead of "Nord"
答案 0 :(得分:1)
350 - > 360 = 0-> 10:360为0,为0。
所以你需要再次添加一个元素“Nord”。现在这个函数:
function azimutHuman(ang) { //can be 0 - 360
var azimuthHumans = [
'Nord','Nord-NE','Nord-Est','Est-NE',
'Est','Est-SE','Sud-Est','Sud-SE',
'Sud','Sud-SO','Sud-Ovest','Ovest-SO',
'Ovest','Ovest-SO','Nord-Ovest','Nord-NO','Nord'];
return azimuthHumans[ Math.round(ang/22.5) ];
}
答案 1 :(得分:0)
Math.round(350/22.5) = 16
索引16处的数组未定义。添加第16个元素,再次Nord
应该