【问题标题】:Show the wind direction in degree in javascript [closed]在javascript中以度数显示风向[关闭]
【发布时间】:2026-02-06 13:00:01
【问题描述】:

如何在javascript中以90°的度数显示风向(包括在数字后使用小圆圈度数符号)?

我只能在文字描述中显示 - 代码如下。

谢谢。

function text(d) {
  let directions = ['Northerly', 'North Easterly', 'Easterly', 'South Easterly', 'Southerly', 'South Westerly', 'Westerly', 'North Westerly'];

  d += 22.5;

  if (d < 0)
    d = 360 - Math.abs(d) % 360;
  else
    d = d % 360;

  let w = parseInt(d / 45);
  return `${directions[w]}`;
}

【问题讨论】:

  • 您能否提供更多信息,例如d 的值,您在此处传递text(d) { ... } 以及HTML 代码..
  • d 的值是度数。链接 - jsfiddle.net/yqoxcLfb/3

标签: javascript jquery weather weather-api


【解决方案1】:

很容易。只需检查 utf16 字符表并使用 String.fromChatCode()。这里:

function text(d) {
        let directions = ['Northerly', 'North Easterly', 'Easterly', 'South Easterly', 'Southerly', 'South Westerly', 'Westerly', 'North Westerly'];

        d += 22.5;

        if (d < 0)
            d = 360 - Math.abs(d) % 360;
        else
            d = d % 360;

        let w = parseInt(d / 45);
        return `${directions[w]}`;
    }

    deg = 67;

    console.log(deg + String.fromCharCode(0xfeff00b0) + ' = ' + text(deg));

这是您可以找到 UTF16 表的众多地方之一:

http://www.fileformat.info/info/charset/UTF-16/list.htm 我还更正了您的代码中的一个错误。请注意“度”变量不存在。应该是“d”

这里有一个更高级的函数供你学习:

dirToStr = (d) => {
  const directions = ['Northerly', 'North Easterly', 'Easterly', 'South Easterly', 'Southerly', 'South Westerly', 'Westerly', 'North Westerly'];
  d = d < 0 ? 
      d = 360 - Math.abs(d) % 360 
    : d % 360;
  return `${directions[d / 45 | 0]}`;
}

const degreeChar = String.fromCharCode(0xfeff00b0);
deg = 67;

console.log(`${deg}${degreeChar} = ${dirToStr(deg)}`);

【讨论】:

  • 谢谢。我正在使用天气 API。我可以在 IPA 响应中获得风度值吗?链接 - openweathermap.org/forecast5
  • 嗯,你在最初的问题中没有问这个问题。你最好再问一个问题,因为这是一个更长的答案。基本上,您必须登录页面,获取 API 密钥,然后对 api 进行 ajax 调用以获取该信息。因此,您必须对 ajax 调用和异步代码以及可能的承诺进行自我教育。请注意,如果您已经在问题中向他们提供了 API 密钥,那就更好了。
  • 所以我使用此功能将每个城市的风向显示为 90 度,该城市存储在基于天气 IPA 的不同 HTML 数据文件的下拉菜单中。不幸的是,我的代码有很多文件要显示,因此我无法让它在这里工作。这是我的代码的平静——jsfiddle.net/lmanhaes/gtaso1z6/5
  • SO 具有与 JSFiddle 完全相同的代码编辑器。请注意 sn-p 窗口下方的小“编辑上面的 sn-p”。您可以将您的代码完全按照 JSFiddle 中的方式传输到 SO 问题。只是请不要在这个中这样做,因为这不是你最初要求的。如果我的回答有帮助,请不要忘记接受/投票。谢谢。
最近更新 更多