簡體   English   中英

JavaScript / JSON-使用鍵名作為索引訪問數組元素

[英]JavaScript / JSON - Access array element using a key name as index

我希望能夠通過使用唯一鍵名而不是數字索引來訪問數組元素。 在我的情況下,我正在制作一個Discord機器人,每個服務器都有自己的設置。 當某人在服務器上發送消息時,我想訪問該服務器的某些設置(例如消息前綴)。 重要信息:目前,我唯一的方法就是遍歷該機器人所在的所有服務器,如果有成百上千的活動服務器正在發送消息,則從長遠來看,這可能會降低其速度。 因此,現在已經完成了遍歷所有服務器的循環,但是我想要一種無需這樣做的直接方法。

conf.json:

{
    "Settings": [
         "358262452343013386" {
             "prefix": "$",
             "Admins": [
                 "155444308395294720"
             ],
             "NotificationChannel": "358772856282284033",
             "robotpieces": []
         }
    ]
}

我想在bot.js中執行的操作:

console.log(conf.Settings[message.guild.id].prefix); // outputs the prefix
// message.guild.id is the id of the server, which in this case, would translate to this:
console.log(conf.Settings["358262452343013386"].prefix) // outputs '$'

關於如何無需遍歷所有數組就可以實現類似目標的任何想法?

編輯:我知道以下JSON是無效的,但我想要一個可以給出相同結果的解決方案。

除了您發布的JSON無效的事實之外,您還可以將服務器設置存儲為對象而不是array ,並且訪問就像您嘗試執行的操作:

{
    "Settings": {
         "358262452343013386": {
             "prefix": "$",
             "Admins": [
                 "155444308395294720"
             ],
             "NotificationChannel": "358772856282284033",
             "robotpieces": []
         }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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