Javascript 无法获取用户名Discord JS的id
我的朋友Discord名称类似于“Avex Sports”,DiscordJS说:无法读取未定义的属性“id”,我将感谢任何帮助让我们从字符串开始。你在这里所做的工作,但只有当你想找到的名字有两个词。如果你想用更多或更少的单词来命名,那么这将不起作用。因此我们可以在这里Javascript 无法获取用户名Discord JS的id,javascript,discord.js,Javascript,Discord.js,我的朋友Discord名称类似于“Avex Sports”,DiscordJS说:无法读取未定义的属性“id”,我将感谢任何帮助让我们从字符串开始。你在这里所做的工作,但只有当你想找到的名字有两个词。如果你想用更多或更少的单词来命名,那么这将不起作用。因此我们可以在这里.slice(1)假设名称确实从第二个参数开始 let string = `${args[1]} ${args[2]}` console.log(string) const idofuser = client.users.cac
.slice(1)
假设名称确实从第二个参数开始
let string = `${args[1]} ${args[2]}`
console.log(string)
const idofuser = client.users.cache.find((u) => u.username === `${string}`).id
接下来,我们尝试查找用户对象。在这里,您应该在==
的两侧使用.toLowerCase()
,以确保不会遇到大小写问题
let string = args.slice(1).join(" ");
最后,我们检查用户是否真的存在,因为正如在评论中所说的,您永远不能假设某个东西存在。如果用户不存在,我们将返回,并发送一条回复作者的消息
let user = client.users.cache.find(u => u.username.toLowerCase() === string.toLowerCase());
如果用户确实存在,那么您只需继续在此处执行您想执行的操作
有关更多信息,请参见此处。让我们从字符串开始。你在这里所做的工作,但只有当你想找到的名字有两个词。如果你想用更多或更少的单词来命名,那么这将不起作用。因此我们可以在这里.slice(1)
假设名称确实从第二个参数开始
let string = `${args[1]} ${args[2]}`
console.log(string)
const idofuser = client.users.cache.find((u) => u.username === `${string}`).id
接下来,我们尝试查找用户对象。在这里,您应该在==
的两侧使用.toLowerCase()
,以确保不会遇到大小写问题
let string = args.slice(1).join(" ");
最后,我们检查用户是否真的存在,因为正如在评论中所说的,您永远不能假设某个东西存在。如果用户不存在,我们将返回,并发送一条回复作者的消息
let user = client.users.cache.find(u => u.username.toLowerCase() === string.toLowerCase());
如果用户确实存在,那么您只需继续在此处执行您想执行的操作
有关详细信息,请参见此处。.find()
将返回未定义的,因此您不能在其后面链接.id
。旁注,这里不需要插值:u.username===`${string}
,可以是u.username===string
。你的意思是:“client.users.cache.find((u)=>u.username===${string}
).id”不,和我上面写的一样:u.username==string
,所以client.users.cache.find((u)=>u.username==string).id
。您不需要在`{}`
中包装单个变量;没必要。这只是一个语法旁注,并不能解决您的问题。您的主要问题是.find()
没有返回任何内容,因此string
不包含您认为它的功能,或者u.username
与string
不匹配(即users.cache
sry我指的是client.users.cache.find((u)=>u.username==string).i如果它不包含我正在搜索的用户名,我该怎么办?.find()
返回未定义的,因此你不能在它后面链接.id
。旁注,你不需要在这里插入:u.username===`${string}
,可以是u.username===string
。你的意思是这样的:“client.users.cache.find((u)=>u.username==${string}
).id”不,正如我在上面写的:u.username==string
,所以client.users.cache.find((u)=>u.username==string.id
。您不需要在`{}中包装一个变量`
;这是不必要的。这只是一个语法旁注,并不能解决您的问题。您的主要问题是.find()
没有返回任何内容,因此string
不包含您认为的内容,或者u.username
与string
不匹配(即,users.cache
sry中没有具有该用户名的用户,我指的是client.users.cache.find((u)=>u.username==string)。i如果它不包含我正在搜索的用户名,我该怎么办?