你如何更新整個對象替換對象的值,說:無需更換參考
var x = {a:1}
function modify(obj) {
obj = {b:2}
}
modify(x)
console.log(x) // {a:1}
但維持基準?我想要在該函數之外修改該對象。
我的具體情況使用lodash.pick
我的函數中:
if (whitelist) {
obj = _.pick(obj, whitelist)
}
我似乎無法找到一個pick
功能修改的對象。有沒有辦法做到這一點,或者我需要開始返回對象的副本?
這樣做的好方法。我同意你的結論。 – Aravind
我結束了使用lodash'_.cloneDeep'並返回一個新對象,但這是問題的最佳解決方案。並同意這是可怕的做法。 – Garrett
任何人都可以詳細說明爲什麼這是如此可怕嗎?我的場景是,我有一個大型的對象數組,我使用支持「引用對象」來通過它們的ID訪問它們,而不必循環訪問數組。也就是說'modify(referenceObject [objectId],updatedObject);' –