You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

天气命令对多词组成的地名无法正确识别温度单位参数如何修复?

你当前代码的问题在于固定读取args[1](参数数组的第二个元素)作为温度单位的判断依据,但包含空格的地名会被拆分为多个参数数组元素,此时温度单位是参数数组的最后一个元素,而非固定索引的args[1],因此多空格地名加单位的查询场景会判定失败。

你可以先判断参数数组的最后一个元素是否为温度单位标识,再将对应位置前的所有参数拼接为完整地名即可,修改后的参考代码如下:

// 先取最后一个参数判断单位
const lastArg = args[args.length - 1].toLowerCase();
let Degree, Deg, locationArgs;
if (lastArg === 'c') {
    Degree = "Celsius";
    Deg = "C";
    // 去掉最后一个单位参数,剩余为地名参数
    locationArgs = args.slice(0, args.length - 1);
} else if (lastArg === 'f') {
    Degree = "Fahrenheit";
    Deg = "F";
    locationArgs = args.slice(0, args.length - 1);
} else {
    Degree = "Celsius";
    Deg = "C";
    // 没有单位参数,所有参数都是地名
    locationArgs = args;
}
// 拼接成完整地名
const location = locationArgs.join(' ');

之后你把拼接得到的location变量传给weather-js的查询接口即可同时兼容单空格地名、多空格地名、带单位/不带单位的所有查询场景。

内容的提问来源于stack exchange,提问作者Mohid Mushtaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 00:45:02