字符串方法挑战

题目

编写一个程序,接收一个使用下划线命名法(underscore_case)编写的变量名列表,并将它们转换为驼峰命名法(camelCase)。
输入将来自插入到DOM中的文本区域(请参见下面的代码),在按下按钮时进行转换。
测试数据(粘贴到文本区域中)
underscore_case
first_name
Some_Variable
calculate_AGE
delayed_departure
应该输出以下内容(5个独立的console.log输出)

 underscoreCase            ✅ 
firstName                  ✅✅ 
someVariable               ✅✅✅ 
calculateAge               ✅✅✅✅ 
delayedDeparture           ✅✅✅✅✅

提示1:记住哪个字符定义了文本区域中的新行😉
提示2:解决方案只需要适用于由两个单词组成的变量,例如a_b
提示3:先不要担心✅。只有在变量名称转换正常工作后再处理它😉
提示4:这个挑战是故意设定为困难的,所以如果你卡住了,开始观看解决方案。然后暂停并继续!
之后,可以使用您自己的测试数据进行测试!
祝您好运 😀

document.body.append(document.createElement('textarea'));
document.body.append(document.createElement('button'));
const text = document.querySelector('textarea').value;

参考

document.body.append(document.createElement('textarea'));
document.body.append(document.createElement('button'));



document.querySelector('button').addEventListener('click',function(){
   
  const text = document.querySelector('textarea').value;
  const rows = text.split('\n');

  for (const [i,row] of rows.entries()) {
   
    const [first, second] = row.toLowerCase().trim().split('_');
    const output = `${
     first}${
     second.replace(second[0],second[0].toUpperCase())}`;
    console.log(`${
     output.padEnd(20)}${
     '✅'.repeat(i+1)}`);
  }
})

在这里插入图片描述

注:
这段代码主要是通过JavaScript实现了以下功能:

  1. 动态创建了一个文本区域和一个按钮,并将它们添加到页面的元素中。
    ○ document.body.append(document.createElement(‘textarea’)) 创建了一个元素并将其添加到中。
    ○ document.body.append(document.createElement(‘button’)) 创建了一个元素并将其添加到中。
  2. 为按钮添加了一个点击事件监听器,当按钮被点击时执行相应的事件处理程序。
    ○ document.querySelector(‘button’) 选择器找到页面中的第一个元素。
    ○ .addEventListener(‘click’, function() { … }) 添加了一个点击事件监听器,并指定一个匿名函数作为事件处理程序。
  3. 在事件处理程序中,获取文本区域的值,并根据换行符拆分成多行文本。
    ○ const text = document.querySelector(‘textarea’).value 获取文本区域的值。
    ○ const rows = text.split(‘\n’) 使用换行符\n将文本拆分为多行,保存在rows数组中。
  4. 使用循环遍历每一行的文本,并对变量名进行转换。
    ○ for (const [i, row] of rows.entries()) { … } 使用for…of语法遍历rows数组的每一项,同时获取索引和当前行的值。
  5. 在每一行内部,使用下划线将变量名拆分为两部分,并将第二部分的首字母大写,然后合并为新的变量名。
    ○ const [first, second] = row.toLowerCase().trim().split(‘_’) 将当前行的文本转换为小写,去除前后空格,并使用下划线拆分为两个部分,保存在first和second中。
    ○ const output = first{second.replace(second[0], second[0].toUpperCase())}`` 将第一个部分first与第二个部分的首字母大写后的部分拼接为新的变量名output。
  6. 最后,输出转换后的变量名和相应的✅符号到控制台。
    ○ console.log(output.padEnd(20){‘✅’.repeat(i+1)}) 使用模板字符串将转换后的变量名和对应的✅符号输出到控制台。padEnd(20)使得变量名占据20个字符的宽度,然后使用’✅’.repeat(i+1)生成i+1个✅符号。
    这段代码涉及的JavaScript知识点包括DOM操作(动态创建元素、选择器、事件监听器)、字符串处理(大小写转换、拼接、填充)、数组迭代(for…of循环、entries()方法)、以及模板字符串的使用。

相关推荐

  1. js字符串方法

    2024-02-22 17:32:03       64 阅读
  2. PostgreSQL拼接字符串方法

    2024-02-22 17:32:03       57 阅读
  3. Python 截取字符串方法

    2024-02-22 17:32:03       57 阅读
  4. 【ES6】字符串新增方法

    2024-02-22 17:32:03       39 阅读
  5. js关于字符串方法

    2024-02-22 17:32:03       40 阅读
  6. js 字符串常用的方法

    2024-02-22 17:32:03       35 阅读
  7. go拼接字符串方法

    2024-02-22 17:32:03       34 阅读
  8. 研发管理的挑战、本原与方案

    2024-02-22 17:32:03       69 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 17:32:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 17:32:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 17:32:03       82 阅读
  4. Python语言-面向对象

    2024-02-22 17:32:03       91 阅读

热门阅读

  1. python子域名收集工具

    2024-02-22 17:32:03       49 阅读
  2. Web应用程序的自动测试工具WebDriver简介

    2024-02-22 17:32:03       54 阅读
  3. k8s-创建命名空间的方法

    2024-02-22 17:32:03       41 阅读
  4. Unity单元测试

    2024-02-22 17:32:03       56 阅读
  5. 基于Mocha的typescript调试教程

    2024-02-22 17:32:03       51 阅读
  6. windows系统用VS环境开发linux程序之一

    2024-02-22 17:32:03       53 阅读
  7. 一些内网渗透总结

    2024-02-22 17:32:03       54 阅读
  8. Python 将二维数组或矩阵变为三维

    2024-02-22 17:32:03       55 阅读