定義類型:
static XjdymData: { [key: string]: {} } = {}
oneUnion是這樣的結構:
let oneUnion = {}; let count = await userRedis.count(); for (let userid in jsUninoData) { let oneUser = <xjdymUnionData>{}; let strUserData = await userRedis.get(userid); oneUser = JSON.parse(strUserData as string); oneUnion[userid] = oneUser; console.log(`====XXXXXXX======union:${unionID},count:${count},userid:${userid}`); console.log("userData:", oneUser) }
插入復雜數據前,先判斷 下一層結構是否存在
if (!CZsjUnionXjdymwar.XjdymData[group]) CZsjUnionXjdymwar.XjdymData[group] = {}
再 然后寫入我們的 map 數據:
CZsjUnionXjdymwar.XjdymData[group][unionID] = oneUnion;
總結:
1.定義類型很重要;
2.賦值前,對key值是否存在進行一次判斷,判斷是否為空
這里面涉及到2層map,所以需要判斷空1次; 如果是3層,可能會需要進一步判斷。。。如果是3層map只能說明數據結構太復雜了,設計有問題。
一般2層是畢竟復雜的了,能解決很多通用問題。。
數據展開如下圖: