2017-06-19 40 views
0

簡單而簡單我想爲足球聯賽打造一張積分榜。我的想法是建立一個帶有標籤(teamName)和對象(teamCompetitionStats)的地圖。因此,我創建這樣的一個類:我可以迭代和更新JS中地圖內的對象的值嗎?

export class TeamCompetitionStats { 
    teamMatches: number; 
    teamPoints: number; 
} 

而我的想法是創建一個與球隊名稱的地圖,以及團體賽統計是這樣的:

map('Barcelona', TeamCompetitionStats) 

所以,當我通過每場比賽迭代,我檢查是否有團隊,如果沒有,我用teamName + TeamCompetitionStats向地圖添加一個條目,如果它已經存在,我更新TeamCompetitionStats中的值。

問題是,我不明白我怎麼能更新地圖中的對象(在這種情況下,TeamCompetitionStats)的值。

不找尤其是一段代碼,但只審查是否有可能,我在正確的道路或

有沒有更好的辦法做到這一點?

+0

這看起來像TypeScript,而不是ES6? – Bergi

+1

什麼是map? – Bergi

+0

你的'TeamCompetitionStats'是可變對象,對吧?只需更新它們。 – Bergi

回答

1

檢查對象是否與has一起存儲。

如果它是更新所說的對象,如果沒有,然後存儲它。

let a = myMap.get(whatever) 
if(a) 
    updateItem(a) 
else 
    map.set(key, val); 

有沒有更好的辦法做到這一點?

伊莫,簡單的物體適合這種情況。

let teams = {"teamA": "sickteam", "teamB": "not so sick"}; 

if (teams["teamC"]) 
teams["teamC"] = "team of clownssssss"; 
else 
teams["teamC"] = "team of clowns"; 
0

當然可以。退房Object.assign

您的來源是您的新數據,目標是整體對象。如果源不匹配目標中的任何內容,則會被添加。如果它匹配目標中的某個東西,它會被更新。

如果目標對象中的屬性具有相同的密鑰,則它們將被源中的屬性覆蓋。後來的消息來源的屬性將同樣覆蓋更早的屬性。

相關問題