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

使用string-similarity匹配宝可梦名称时报参数错误如何解决

问题原因

  • 第一个参数类型错误:stringSimilarity.findBestMatch 第一个入参要求是单个字符串,你传入的args是split方法切割后得到的数组,类型不匹配。
  • 第二个参数类型错误:你在数组文件中通过exports.pokemons导出数组,主文件直接require得到的是包含pokemons属性的导出对象,不是数组本身,不符合「第二个参数为字符串数组」的要求。
  • 额外注意:如果数组文件里的example1等内容没有加引号,会被识别为变量而非字符串,也会触发数组元素类型不符合的报错。

修复方案

第一步:修正导入逻辑和入参取值

主文件调整为以下代码:

const args = message.content.slice(prefix.length).trim().split(/ +/);
const stringSimilarity = require("string-similarity");
// 解构导出对象,直接拿到宝可梦数组
const { pokemons } = require('../../arrays/pokemons.js')
// 取指令后用户输入的宝可梦名称作为匹配目标,按需调整索引即可
const inputPokemonName = args[1]
const poss = stringSimilarity.findBestMatch(inputPokemonName, pokemons)
console.log(poss.bestMatch.target)

第二步:确认数组文件内容格式

数组文件里的宝可梦名称需要用引号包裹为字符串格式,示例如下:

exports.pokemons = [
    '妙蛙种子',
    '皮卡丘',
    '喷火龙',
    // 其他宝可梦名称
]

内容的提问来源于stack exchange,提问作者Dancing Potato

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:36:09