我使用節點js在電報上創建了一個遊戲機器人。Javascript/Node Js - 爲每個實例創建新變量
目前我在共享變量(module.exports)上遇到問題。我在變量上存儲了一些數據。問題是,共享變量索引總是改變。例如,請參考我下面的代碼
var sharedVar = [];
createNewRoom = function(res) {
var index = sharedVar.length;
sharedVar.push({ groupId : res.chat.id }); // every time this function is invoked, it will create a new array inside sharedVar object
//Here comes the problem, it's about the index,
//because I'm using sharedVar to store arrays, then it will become a problem,
//if one array is deleted (the index will change)
var groupId = sharedVar[index].groupId; // it runs OK, if the structure of array doesn't change, but the structure of array change, the index will be a wrong number
}
正如你所看到的,我得到了callGameData
功能,當我叫它,它會顯示的sharedVar
的最後值,它應該,顯示當前房間價值/數據。
正如我在上面的代碼中提到,它是所有關於在sharedVar
對象的動態數組,該指數將改變動態
任何想法來解決這種問題?我一直在考慮在每次調用createNewRoom
函數時使用新的對象sharedVar
,但事情是,我必須在許多不同的函數中使用sharedVar
,並且我仍然無法在使用該方法時弄清楚它。
編輯
這是第二種方法
var gameData = undefined;
createNewRoom = function() {
this.gameData = new myConstructor([]); // it will instantiate a new object for each new room
}
myConstructor = function(data) {
var _data = data;
this.object = function() {
return _data;
}
}
callGameData = function() {
console.log(gameData);
}
你究竟需要什麼數組?如果每個房間都應該有自己的ID(索引),爲什麼還要分享? – Bergi
來存儲數據。是的,這就是我在我的帖子上寫的,我想爲每個房間創建一個獨立變量,例如使用構造函數,但問題是,我仍然必須在全局變量上定義變量,因爲我有很多使用變量 – Webster
請向我們展示這些函數,沒有代碼,我們幾乎無法建議您做任何事情。他們是房間的方法嗎? – Bergi