【问题标题】:How to remove a char from a string, and return a number from the new string - Javascript如何从字符串中删除一个字符,并从新字符串中返回一个数字 - Javascript
【发布时间】:2013-03-17 00:27:51
【问题描述】:

我有一些函数旨在将用户输入作为字符串转换为二进制数。这是我正在研究的基本“汇编程序”程序的一部分。这是我的代码:

    function generateBinaryNumber(inputValue) //only works for hash!
{
    var number;

    if(containsHash(inputValue) != -1)
    {
        number = getNumberFromString(inputValue);
    }

    return decimalToBinary(number);
}

function containsHash(number) //Working!
{
    var n = number.indexOf('#');
    return n;
}

function getNumberFromString(mixedInput) //Working!
{
    return (mixedInput.replace('#',''));
}

function decimalToBinary(decimal) //Working!
{
    decimal = parseInt(decimal);
    return decimal.toString(2);
}

例如,如果用户输入值“5”,该函数将返回 NaN - 但是如果他们指定 #5,它会起作用 - 返回 101。我是编程和 Javascript 的新手,如果有人能指出我正确的方向,那就太好了。谢谢!

【问题讨论】:

    标签: javascript string binary return


    【解决方案1】:

    如果没有#,你就没有传递输入

    function generateBinaryNumber(inputValue) //only works for hash!
    {
        var number; //number is not set
    
        if(containsHash(inputValue) != -1) 
        {
            //number is set here, but only if the if statement is true
            number = getNumberFromString(inputValue);
        }
        //if containsHash was false, number is undefined
        return decimalToBinary(number);
    }
    

    声明时你只想说var number=inputValue;

    作为旁注,您还应该在 parseInt 中添加一个 radix 参数(类似于parseInt(decimal,10)),否则它会将"010" 之类的输入视为十六进制数字,并且会错误地解析它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2014-07-30
      • 1970-01-01
      • 2013-03-02
      • 1970-01-01
      • 2012-03-27
      • 1970-01-01
      相关资源
      最近更新 更多