【发布时间】:2020-12-25 00:12:22
【问题描述】:
我正在编写一个 Discord 机器人,其中一部分是存储在 JSON 文件中的对象数组。用户将能够使用不同的命令从数组中添加和删除对象。数组中的每个对象都有两个属性:{"string":"test","count":0}
我有一些代码可以成功地将对象添加到数组中:
let rawdata = fs.readFileSync('config.json');
let blacklist = JSON.parse(rawdata);
var newWord = {"string": args[3], "count": 0}
blacklist.words.push(newWord);
let data = JSON.stringify(blacklist);
fs.writeFileSync('config.json', data);
我还编写了一些从数组中删除对象的代码:
var remove = false;
for (i = 0; i < blacklist.words.length; i++) {
if (blacklist.words[i].string === args[3]) {
blacklist.words.splice(i, 1);
var removed = true;
}
}
if (removed) {
message.reply(
"the word `" +
args[3] +
"` has been successfully remove from your blacklist!"
);
} else {
message.reply(
"I couldn't find the word `" + args[3] + "` on your blacklist!"
);
}
问题是,将对象添加到此数组的代码可以正常工作,但删除对象的代码却不行。当我发送删除对象的命令时,机器人回复 "the word" + args[3] + "has been successfully remove from your blacklist!" 这让我认为代码运行成功,但实际上并没有工作。
【问题讨论】:
-
但实际上不工作“不工作”是什么意思?
-
@Berto99 当我运行命令时,我检查了
config.json并且我应该删除的对象仍在文件中。 -
可能你需要写回文件上的对象,不是吗?
-
啊,是的,当然,谢谢。有时候我很傻xD
标签: javascript json discord.js javascript-objects