2017-05-29 41 views
0

我有用戶定義爲這樣;Javascript:在對象內刪除/編輯對象

const initUsers = { 
    '[email protected]':{ 
    firstName: 'A', 
    lastName: 'Test', 
    email: '[email protected]', 
    password: 'test', 
    }, 
    '[email protected]':{ 
    firstName: 'B', 
    lastName: 'Test', 
    email: '[email protected]', 
    password: 'test', 
    } 
}; 

我能夠通過做initUser['[email protected]']檢索用戶。我如何根據他們的密鑰刪除用戶,如[email protected]這樣的電子郵件?或者,如何用另一個密鑰替換它,例如,[email protected]代替[email protected]

謝謝。 (JavaScript的初學者)

+1

謝謝@Cauterite。我遇到過類似的鏈接,但我沒有意識到對象內的對象可以被類似地訪問。現在我看到它可能是一個可能的重複。 – MNS

回答

0

使用JavaScript delete關鍵字刪除對象的屬性

delete initUsers['[email protected]']

應該刪除它爲您

不能改變一個對象的屬性的名稱。最好的選擇是將新屬性添加到對象中,並刪除要替換的對象

+0

謝謝,它像一個魅力。我會在計時器後接受答案。另一個快速問題:我提供更新用戶信息的選項。刪除舊對象並替換爲包含新數據的新對象(因爲電子郵件/密鑰可能已更新)或刪除屬性並重新添加它們會更好嗎? – MNS

+0

就像我說過的,如果你的對象在'a @ test.com'下鍵入,如果你想把它改成'b @ test.com',你**不能**更新它,你有要手動添加一個在'b @ test.com'下鍵入的新對象,然後刪除'a @ test.com',但如果它們的鍵沒有改變,只有它映射到的對象做了,你不需要刪除密鑰,如果您向當前密鑰之一添加一個具有相同名稱的新密鑰,那麼該密鑰的值將被新值覆蓋 – Dummy