【发布时间】:2020-09-12 20:53:33
【问题描述】:
我正在尝试解决 JavaScript 中一个相对简单的练习问题。目标是创建一个名为shiftLetters() 的函数,该函数执行以下操作:
- 将作为参数传递的字符串转换为由字符串中的单个字母组成的字符串数组。
- 使用
Array.prototype.map()方法迭代数组中的每个单个字符。 - 如果字符是空格,则不应进行转换。
- 如果字符是字母数字,则应使用
String.charCodeAt()将其转换为向前推进一个字符(例如,F 变为 G,f 变为 g)。 - 使用
String.fromCharCode()组合一个字符串,例如,将“我不能说谎”转换为“J dboopu ufmm b mjf”。
到目前为止,这是我的代码:
var shiftLetters = function(string){
// 1. Convert string to an array of characters.
const stringArray = string.split('');
const mappedString = stringArray.map( (char) => {
for (char in mappedString) {
// TO BE DONE
}
});
}
const example = 'Able was I ere I saw Elba.';
我发现上述代码存在以下问题,但我不确定如何解决:
- 尽管字符串(在本示例中,“我在看到 Elba 之前能够做到”)成功地转换为由单个字符组成的数组,例如
['A', 'b', 'l', 'e'...]、String.prototype.charCodeAt()和String.fromCharCode()不是数组公开的方法,不能在该上下文中使用。 - 在 MDN 和其他在线资源的搜索中,我无法发现任何可以引用数组中的索引并获取该元素的 ASCII 字符代码的可用方法。
虽然我可以看到,如果我确实成功地创建了一个转换后的字符数组,那么使用 ```Array.prototype.join()` 来创建一个以上述方式转换的字符串。我只是无法弄清楚如何达到这一点。
如果能提供任何见解,我将不胜感激。与此同时,我将继续我的研究。如果我找到答案,我会在这里发布。
提前感谢您的帮助。
此致,
罗伯特·希格
【问题讨论】:
标签: javascript arrays string ascii transformation