在 JavaScript 中为 JSON 对象中的每个条目添加唯一 ID

javascriptweb developmentfront end technologyobject oriented programmingjson

在此问题陈述中,我们的任务是借助 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
   }
   };
 
   // 向 JSON 对象添加唯一 ID 的函数
   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 对象的效率。


相关文章