[英]writeFile output issues. Didn't show what I expected to see
我不明白如何編寫這樣的文件:
{
"726623241984278589": {
"322366672625467392": {
"Moderation": "Kick",
"Target": "Bobo#1601",
"Moderator": "Bobosky#3914",
"Reason": "Testing",
"ID": "#XLR6RV8M"
}
}
}
這是我的 fs.writeFile 代碼:
const TargetMemberID = TargetMember.id
data[message.guild.id] = {
TargetMemberID: {
Moderation: 'Kick',
Target: `${TargetMember.user.tag}`,
Moderator: `${message.author.tag}`,
Reason: `${Reason}`,
ID: `#${ID}`
}
}
fs.writeFile("./data.json", JSON.stringify(data), (err) => {
if (err) console.log(err);
});
但它是這樣的:
{
"726623241984278589": {
"TargetMemberID": {
"Moderation": "Kick",
"Target": "Bobo#1601",
"Moderator": "Bobosky#3914",
"Reason": "Testing",
"ID": "#XLR6RV8M"
}
}
}
所以這不是我期望看到的。 我希望看到上面的 TargetMemberID 被數字替換,就像我期望的第一個 json 代碼一樣。 有什么線索嗎?
我試過把寫作部分寫成
data[message.guild.id[TargetMember.id]]
但它不起作用。
PS:TargetMember的定義部分,Reason等我沒有放我所有的代碼。所有這些都是基於discord.js的。
在 JavaScript 中,object 鍵是字符串,所以當你寫TargetMemberID
作為鍵時,它和寫"TargetMemberID"
是一樣的。 如果您希望鍵是TargetMemberID
的值,則需要在其周圍添加方括號。 這樣你也可以只使用TargetMember.id
,你不需要一個新的變量。
此外,您不需要在這些值中使用模板文字,您可以按如下方式傳遞它們。
data[message.guild.id] = {
[TargetMember.id]: {
Moderation: 'Kick',
Target: TargetMember.user.tag,
Moderator: message.author.tag,
Reason: Reason,
ID: ID,
}
}
當 object 鍵和變量相同時,您還可以使用簡寫語法:
data[message.guild.id] = {
[TargetMember.id]: {
Moderation: 'Kick',
Target: TargetMember.user.tag,
Moderator: message.author.tag,
// same as Reason: Reason
Reason,
// same as ID: ID
ID,
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.