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