javascript - 将元音大写

标签 javascript arrays

我一直在做一个挑战,我必须在 Javascript 中创建一个函数,该函数会将字母位置更改一个,并且元音必须大写,例如“f”变为“g”,“z”变为“A” ”,“m”转到“O”。我做了其中很大一部分步骤,但我在元音大写方面遇到了困难。这是我的代码:

function LetterChanges(str) {
  var newString = [];

  for (var i = 0; i < str.length; i++) {
    if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 121) {
      newString.push(String.fromCharCode(str.charCodeAt(i) + 1));
    }
    // z to a
    else if (str.charCodeAt(i) === 122) {
      newString.push(String.fromCharCode(str.charCodeAt(i) - 57));
    } //spaces
    else if (str.charCodeAt(i) === 32) {
      newString.push(String.fromCharCode(32));
    } else {
      newString.push(String.fromCharCode(str.charCodeAt(i)));
    }
  }

  return newString.join("");
}

console.log(LetterChanges("fanzd times!"));

最佳答案

你并不孤单。许多人在遇到这样的问题时,首先会编写涉及字符代码、if 语句等的复杂逻辑。通常有一种更简单的方法:写下“源”和“目标”字母,然后编写两行代码来翻译输入它们之间。如果结果不是您所期望的,只需编辑目标字母即可。

src = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
dst = 'bcdEfghIjklmnOpqrstUvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZA'

str = 'whatever!'
out = ''

for (c of str)
  out += dst[src.indexOf(c)] || c
  
console.log(out)
  

关于javascript - 将元音大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018364/

相关文章:

javascript - 使用浏览器控制台 (Chrome) 将表格数据从 HTML 页面导出到 CSV 文件

javascript - 将分页转换为下拉式分页器

javascript - 如何解码诺克记录的响应

c - For循环不将数组内的特殊字符识别为单个字符

c# - 如何将整数数组转换为内存流?

javascript - JQuery for 循环和数组 - 为什么这个变量未定义?

javascript - 在javascript中在数组中添加数组对象或在数组中添加新索引

javascript - 如何在node.js中从pcap获取数据

javascript - 为什么我的 Google 表格功能这么慢?

java - 从数组中删除项目并缩小数组