最近,我需要在 API 中處理輸入和輸出資料的日誌記錄。但是,我遇到了一個問題:某些屬性包含無法在日誌中顯示的敏感資料。當處理一個簡單的物件時,處理這個問題很簡單,但是當處理具有多個層級的巢狀物件時,事情會變得更加複雜。這就是遞歸的用武之地。使用遞歸,可以在線性時間 O(n) 內有效地處理這個問題。程式碼如下:
const sensitiveFields = ['password', 'email', 'userCode']; function handleSensitivesFields(data) { if (typeof data !== 'object' || data === null) { return data; } for (const key in data) { if (sensitiveFields.includes(key)) { const value = data[key]; if (typeof value === 'string') data[key] = createMask(value.length); } if (typeof data[key] === 'object') handleSensitivesFields(data[key]); } }
以上是如何使用遞歸匿名化物件中的屬性的詳細內容。更多資訊請關注PHP中文網其他相關文章!