微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在javascript中实现一个函数

如何解决在javascript中实现一个函数

我在 javascript 中解决一个问题,但是当我执行代码时,我得到的结果是:'A',但我想知道我编码的内容是否好,因为我有疑问。 问题来了:

printChar 允许在多行中显示一个且仅一个 ASCII 字符,从 A 到 Z(含) 列(称为“ASCII 艺术”的图形表示)。

我们想在另一个方向执行操作:从它的表示中获取一个字符 图形。 实现 scanChar (str) 方法,使其返回与其表示相关联的字符 c 图(即str = printChar (c))。 如果 str 不匹配 A 和 Z(含)之间的字符,则 scanChar 应返回字符 '?'

这是我的代码

function scanChar(str) {
        
    // Iterate over each character from A to Z.
    for (var c = 'A'; c <= 'Z'; c++) {
        // Check to see if the character corresponds with the ASCII art.
        if (printChar(c) === str) {
        // Return the character if it does.
        return c;
        }
    }

    // Optionally use a '?' character to indicate that the string passed
    // doesn't correspond to any valid ASCII art.
    return  '?';

    }




    function printChar( s) {
    return "S";

}

var art=printChar('A');
console.log(scanChar(art));

解决方法

您的代码很优雅,但存在许多可以轻松修复的逻辑问题。

  1. 您的 prinbtChar 函数总是返回字符串“S”
  2. 您从 A - Z 开始的 for 循环不太正确。我已经用一种方法替换了它。

function scanChar(str) {
console.log(str)
        
    // Iterate over each character from A to Z.
    
    var first = "A",last = "Z";
    for(var i = first.charCodeAt(0); i <= last.charCodeAt(0); i++) {
         var c = String.fromCharCode(i);

  
        if (printChar(c) === str) {
        // Return the character if it does.
        return c;
        }
    }

    // Optionally a '?' character to indicate that the string passed
    // doesn't correspond to any valid ASCII art.
    return  '?';

    }




    function printChar( s) {
    return s;

}

var art=printChar('J');
console.log(scanChar(art));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。