簡體   English   中英

writeFile output 問題。 沒有顯示我期望看到的內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM