如何从指定对象创建一个新对象,其中所有键在 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()。

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() 方法构建新对象,尽管此方法效率较低,并且可能不适用于所有类型的对象。

以上就是如何从指定对象创建一个新对象,其中所有键在 JavaScript 中都是小写?的详细内容,更多请关注双恒网络其它相关文章!

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
9.本站默认解压密码为:www.sudo1.com
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

云资源网 » 如何从指定对象创建一个新对象,其中所有键在 JavaScript 中都是小写?

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或 联络我们.。
你们有qq群吗怎么加入?
当然有的,如果你是帝国cms、易优cms、和pbootcms系统的爱好者你可以加入我们的QQ千人交流群https://www.sudo1.com/page-qun.html。
  • 会员数(个)
  • 12334资源数(个)
  •        
  • 资源(G)
  •        
  • 今日下载
  • 1406稳定运行(天)

提供最优质的资源集合

立即查看 了解详情