在 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 中都是小写?的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

JavaScript在现实世界中的应用包括服务器端编程、移动应用开发和物联网控制:1.通过Node.js实现服务器端编程,适用于高并发请求处理。2.通过ReactNative进行移动应用开发,支持跨平台部署。3.通过Johnny-Five库用于物联网设备控制,适用于硬件交互。

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

WebStorm Mac版
好用的JavaScript开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Dreamweaver Mac版
视觉化网页开发工具