在 JavaScript 中為 JSON 物件的每個條目新增唯一 ID
在這個問題陳述中,我們的任務是藉助 Javascript 為 JSON 物件中的每個物件條目新增一個唯一 ID。為此,我們將使用迴圈和一個變數來儲存 JSON 物件中每個物件的 ID。
理解問題陳述
問題陳述是在 Javascript 中編寫一個函式,透過該函式可以為給定 JSON 物件中的每個專案新增一個唯一 ID。為了透過向每個物件新增新的 ID 來更新每個 JSON 物件,我們將使用基本的 Javascript 功能。例如,我們有 obj = {{empName: “A”, age: 25},{empName: “B”, age: 30}},所以在向每個條目新增唯一 ID 後,更新後的物件將如下所示 - obj = {{id: 0, empName: “A”, age: 25},{id: 1, empName: “B”, age: 30}}。
給定問題的邏輯
因此,我們將使用一種演算法為輸入 JSON 物件中的每個條目分配一個新的 ID。此方法將訪問 JSON 物件作為引數,我們將使用 for 迴圈遍歷物件中的每個鍵。因此,它將為物件中每個鍵的相關專案新增一個名為 id 的新屬性,並將它的值設定為唯一的 ID 值。
分步過程
步驟 1 − 建立一個名為 jsonData 的物件,並使用一個條目來定義物件中的每個專案。在條目物件內定義 empName 和 age
步驟 2 − 使用 addUniqueId 函式為資料中的每個物件建立唯一 ID。
步驟 3 − 將名為 index 的變數初始化為零。
步驟 4 − 使用 for 迴圈遍歷 JSON 物件。
步驟 5 − 透過使用點表示法或方括號表示法訪問每個條目,為 JSON 物件中的每個條目分配 ID。
步驟 6 − 為每個條目分配 ID 後,返回具有在每個物件中更新的 ID 的新的 JSON 物件
演算法程式碼
const jsonData = { "entry1": { "empName": "Janvi", "age": 30 }, "entry2": { "empName": "Rani", "age": 25 }, "entry3": { "empName": "Babita", "age": 40 } }; // Function to add unique ID to JSON object function addUniqueId(jsonData) { let index = 0; for (let key in jsonData) { jsonData[key].id = index++; } return jsonData; } const resultObject = addUniqueId(jsonData); console.log(resultObject);
複雜度
演算法所需的時間為 O(n),其中 n 是 JSON 物件中條目的數量。因為該函式需要一次迭代物件中的每個條目才能新增唯一 ID。演算法的空間複雜度也是 O(n),因為該函式就地修改實際的 JSON 物件,並且不會建立新的 JSON 資料。
結論
以上程式碼提供了一個簡單的解決方案,用於在 Javascript 中為每個條目 JSON 物件新增唯一 ID。因此,它具有 O(n) 的時間和空間複雜度,這使得它對於大型 JSON 物件效率較低。