将字符串转换为的对象.SetChoices()Discord.js v14



所以我有一个字符串'{ name:"All", value:"All"},{ name:"Home", value:"Home" },{ name:"Coding", value:"Coding" }',但我想把它放在我的Discord bot命令的.SetChoices()中。我之所以需要这个,是因为当我编辑一个外部JSON文件时,它会自动为这个命令的Choices添加值。它也是命令功能所必需的。

但我需要某种对象进入.SetChoices()。当我有一个对象数组时,它不喜欢它,并给出一个错误。我想看看是否有一种方法可以将这个字符串转换为一个变量中的多个对象,这样我就不必向外部JSON和另一个对象添加新值。

我想要的是一个变量等于{ name:"All", value:"All" },{ name:"Home", value:"Home" },{ name:"Coding", value:"Coding" }(多个对象(。但我不知道这是否可能。

如果您希望您的对象不是作为对象数组而是作为对象本身传递到方法中,则可以使用数组销毁。

举个例子,下面是如何使用销毁来传递参数以及它将如何工作:

// You store your choices as array of objects and parse them
// into array which will look like this one:
const choices = [
{name: "All", value: "All"},
{name: "Home", value: "Home"},
{name: "Coding", value: "Coding"}
];
// Now you just need to add `...` to the beginning of the array
// in order to destruct it:
setChoices(...choices);
// Code above is equivalent of you calling the method with objects
// passed as arguments:
setChoices(choices[0], choices[1], choices[2]);
setChoices(
{name: "All", value: "All"}, 
{name: "Home", value: "Home"},
{name: "Coding", value: "Coding"}
);

您所需要的只是将选择数组存储在JSON中,将其解析为数组,并在传递到setChoices方法时销毁以下数组。

最新更新