在 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 物件效率較低。

更新於:2023年5月18日

4K+ 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始學習
廣告