【问题标题】:coding numbers into letters With HTML/Javascript使用 HTML/Javascript 将数字编码为字母
【发布时间】:2021-12-24 09:04:42
【问题描述】:

我正在寻找一种将数字编码为字母的方法。我想使用输入的 django 变量并将数字翻转为字母:

1=M
2=A
3=k
4=E
etc.

完成此任务的最佳方法是什么?我看过开关功能,但我似乎只能让它为 1 个字符工作。我如何让它切换从 Django 变量输出的每个数字?

    <script type="text/javascript"> 
       function myFunction() {
      var text;
      var Number = {{ Label.MetaData.price|number_format(0, '', '')|raw }};
      switch(Number) {
        case "1": text = "M"; break;
        case "2": text = "A"; break;
        case "3": text = "K"; break;
        case "4": text = "E"; break;
        }
        document.getElementById("code").innerHTML = text; }
    </script>
    <p id="code"></p>

【问题讨论】:

  • 听起来你需要某种循环,循环遍历每个数字并输出字母。很难猜出 witch each number outputted from a Django variable 到底是什么意思

标签: javascript switch-statement


【解决方案1】:

使用对象可能是最简单的方法。这是一个例子。

const letterMap = {
  " ": 0,
  a: 1,
  b: 2,
  c: 3,
  d: 4,
  e: 5,
  f: 6,
  g: 7,
  h: 8,
  i: 9,
  j: 10,
  k: 11,
  l: 12,
  m: 13,
  n: 14,
  o: 15,
  p: 16,
  q: 17,
  r: 18,
  s: 19,
  t: 20,
  u: 21,
  v: 22,
  w: 23,
  x: 24,
  y: 25,
  z: 26,
}

const sentence = "the quick brown fox jumped over the lazy dog"
for (const char of sentence) console.log(letterMap[char]);

【讨论】:

  • 请原谅入侵,因为它基本上是一个非关联数组,使用数组方法(以indexOf开头)不是更好吗?
  • @entio 这也可以,但是使用键访问值要快得多。此外,您可以选择字母的值,这与数组不同。
  • 嗯,我有点倾向于认为在这种特殊情况下性能提升可以忽略不计。使用数组,您也可以设置字母的索引。但是,好吧,你有你的意思。如果索引不连续,那么所有好处都将丢失。
【解决方案2】:

编辑:替换单引号。

const characterString = 'MAKE';

const myNumber = 2  // replace with yours

const myLetter = characterString.charAt(myNumber);  // K

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charAt

【讨论】:

    猜你喜欢
    • 2015-11-09
    • 2013-01-04
    • 1970-01-01
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多