JS转换为ASCII数字并反向

时间:2018-08-28 09:41:49

标签: javascript string

我坚持要这样做,您能否在JavaScript Alien message中提供帮助

允许的语言 JavaScript

您的任务是翻译某种外语(称为Alienski)。

可以通过遵循简单的规则并使用两种已知的语言(英语和西班牙语)来创建消息。

Alienski中的每个单词都是通过从英语和西班牙语(绝对值)中减去字母构成的,即得到的字母。

有两种特殊情况。如果每个单词中的符号都是'-'(连字符)或''(空格),则必须以这种方式保留它。

不会同时出现'-'(连字符)和''(空格)的情况。

如果其中一个单词的字母比另一个单词多,只需将较长单词中的字母添加到结果中即可。 例: 复制

谈话 轮齿

复制

a b c d .... 0 1 2 3 ....

t - h = | 19 - 7 | = 12 = m
a - a = | 0 - 0 | = 0 = a
l - b = | 11 - 1 | = 10 = k
k - l = | 10 - 11 | = 1 = b
empty - a = a

empty - r = r

Result:
    makbar

我从3个小时开始坚持。到目前为止,这是我的代码

let englishWord = 'talk'
let spanishWord = 'hablar'
let engToDigit = [];
let spnToDigit = [];
let alien = [];

for (var i = 0; i < englishWord.length; i++) {
    engToDigit.push(englishWord.charCodeAt(i))
}
for (var y = 0; y < spanishWord.length; y++) {
    spnToDigit.push(spanishWord.charCodeAt(y))
}
let result = engToDigit.map((a, i) => a - spnToDigit[i]);

for (let index = 0; index < result.length; index++) {
    result[index] += 97;




console.log(result);

1 个答案:

答案 0 :(得分:0)

听起来您需要做的就是逐步进行。首先,我将创建一个遍历字符串并将每个字母转换为ASCII码的函数。尝试以下顺序:

  1. 检查代码是否为大写,然后获取数字值。
  2. 确保charCode大于96并且charCode小于123
  3. 然后通过运行和将所有代码转换为其数值。
    收集在一个数组中:charCode-97
  4. 否则,检查代码是否为小写,然后获取数值。
  5. 确保charCode大于64而charCode小于91。
  6. 然后通过在数组中运行和收集将所有代码转换为其数值:charCode-65
  7. 否则,只需将值添加到数组即可。
  8. 在上述循环之外,返回一个连接的数组。

连接数组后,它将是一个字符串,例如“ 19,0,11,10,-,7,0,1,11,0,17”。

  1. 检查是否有空格或连字符。
  2. 然后您可以根据步骤9的结果拆分数组。
  3. 然后将每个数组拆分为“,”。
  4. 遍历每个数组并减去值。
  5. 通过加65将值转换回去-因为此时无法知道字符是否为大写。
  6. 然后使用String.fromCharCode(##)将代码转换回不可读的外来词。