JavaScript 如何从指定的对象创建一个新对象,其中所有的键都是小写的

JavaScript 如何从指定的对象创建一个新对象,其中所有的键都是小写的

在JavaScript中,有很多方法可以从旧对象创建新对象。创建一个具有与现有对象相同键,但所有键都是小写的新对象是一个常见用例。当处理来自许多源具有不规则键大小写的数据时,这将非常有帮助。在本博客文章中,我们将看一下用于创建具有小写键的新对象的各种JavaScript方法。

但在此之前,重要的是要记住,虽然创建一个具有小写键的新对象可能在处理来自不同源的数据时有帮助,但也需要注意更改键的大小写可能带来的可能后果。

例如,它可能会破坏期望键以特定大小写出现的当前代码,或者可能会干扰预期键以特定大小写出现的外部API或数据库。在更改对象的键大小写之前,始终对代码进行全面的测试,并考虑您的用例的具体需求。

Object.assign()

可以使用内置的JavaScript方法Object.assign()将一个或多个现有对象合并创建一个新对象。通过生成一个与原始对象具有相同键,但所有键都是小写的新对象,也可以改变对象的键的大小写。使用Object.assign()创建具有小写键的新对象的基本语法。

示例

<html>
<body>
   <div id="myDiv"></div>
   <script>
      var original = {name: "John", AGE: 25};
      var lowercase = Object.assign({}, original);
      document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase);
   </script>
</body>
</html>

在这个示例中,函数Object.assign()生成一个新的对象,并将原对象的属性赋给它。旧对象中的相同键将出现在新对象中,但它们将变为小写。 您可以使用Object.keys()函数遍历原对象的键,并在将其传递给Object.assign()之前将它们转换为小写 –

示例

<html>
<body>
   <div id="myDiv"></div>
   <script>
      var original = { name: "John", AGE: 25 };
      var lowercase = Object.assign(
         {},
         ...Object.keys(original).map((k) => ({
            [k.toLowerCase()]: original[k],
         }))
      );
      document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase);
   </script>
</body>
</html>

这种方法使用Object.keys()方法来获取原始对象的键数组。使用Array.map()方法迭代键并创建一个具有相同键但小写的新对象。然后使用spread操作符将新对象传递给Object.assign()。

for-in循环

使用for-in循环迭代原始对象的键,生成具有相同键但小写的新对象是另一种构建具有小写键的新对象的方法。使用for-in循环创建具有小写键的新对象的基本语法是−

示例

<html>
<body>
   <div id="myDiv"></div>
   <script>
      var original = { name: "John", AGE: 25 };
      var lowercase = {};
      for (var key in original) {
         lowercase[key.toLowerCase()] = original[key];
      }
      document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase);
   </script>
</body>
</html>

在这个示例中,toLowerCase()函数被用来将每个键从大写转换为小写,并将相应的值分配给新对象。然后,for-in循环遍历原始对象的键。

JSON.parse()和JSON.stringify()

使用JSON.parse()和JSON.stringify()方法是创建具有小写键的新对象的第三种方法。当使用这些技术来构建具有小写键的新对象时,基本语法是−

示例

<html>
<body>
   <div id="myDiv"></div>
   <script>
      var original = { name: "John", AGE: 25 };
      var lowercase = JSON.parse(JSON.stringify(original).toLowerCase());
      document.getElementById("myDiv").innerHTML = JSON.stringify(lowercase);
   </script>
</body>
</html>

在这个示例中,使用JSON.stringify()方法将原始对象转换成JSON字符串。然后使用toLowerCase()方法将JSON字符串中的所有键转换为小写。

最后,使用JSON.parse()方法将JSON字符串转换回JavaScript对象。通过使用这个方法,创建一个新的对象,它具有与原始对象相同的键,但所有的键都是小写。

这种方法需要将对象转换为字符串然后再转回来,所以比前两种方法效率低。它也只适用于简单对象;对于具有唯一属性或方法的对象,可能无法使用。

结论

在本文中,我们探讨了使用不同的JavaScript方法构建具有小写键的新对象。一个快速有效的方法是使用Object.assign()方法生成一个具有与现有对象相同的键但全部小写的新对象。另一个选择是使用for-in循环遍历对象的键,并产生具有相同键但全部小写的新对象。还可以使用JSON.parse()和JSON.stringify()方法构建一个新对象,并使用小写键,尽管这种方法效果较差,可能无法适用于各种类型的对象。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程