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()方法被用来遍历这些键,并创建一个具有相同键但为小写的新对象。然后,这个新对象被传递给Object.assign(),使用spread操作符。

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()方法来建立一个新的对象,尽管这种方法不太有效,而且可能不适合所有种类的对象。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

JavaScript 教程