【问题标题】:JavaScript: How to store array[char] values into a variable?JavaScript:如何将数组 [char] 值存储到变量中?
【发布时间】:2020-05-10 01:28:54
【问题描述】:

我正在用 javascript 编写一个十进制到二进制转换器,我遇到了这个问题。

这是我的代码。

function binaryConverter(x)
    {
        if(x === "")
        {
            return 0;
        }

        let binaryArray = new Array(128, 64, 32, 16, 8, 4, 2, 1);
        let result = new Array();
        let newX;

        //pelda: x = 75

        for(let i = 0; i < binaryArray.length; i++)
        {

            if(binaryArray[i] <= x)
            {
                result.push('1');
                newX = x - binaryArray[i]; // 75 - 64 = 11 | 11 - 8 = 3 | 3 - 2 = 1
                x = newX;

            }
            else
            {
                result.push('0');
            }
        }

        writeBinaryNumber(result);

    }

function writeBinaryNumber(ar)
    {


        for (let i = 0; i < ar.length; i++)
        {
            document.write(ar[i]);
        }
    }

使用 document.write() 它是有效的(我只用数字 75 测试过它,我知道二进制代码的第一部分是 0,我会修复它。)。但我想连接我的html。我想返回一个包含数组中字符的变量,但我不能。在带有迭代器的 C++ 中它正在工作,但我不熟悉 javascript,我使用谷歌搜索解决方案,但我找不到。如果有人知道解决方案,请写下来!谢谢!

【问题讨论】:

  • 你需要用 in html 右显示

标签: javascript arrays variables converters


【解决方案1】:

使用数组join()方法将数组中的所有字符串连接成一个字符串。

let binaryString = ar.join('');

你也可以只连接一个字符串而不是创建一个数组。

function binaryConverter(x) {
  if (x === "") {
    return 0;
  }

  let binaryArray = new Array(128, 64, 32, 16, 8, 4, 2, 1);
  let result = '';
  let newX;

  //pelda: x = 75

  for (let i = 0; i < binaryArray.length; i++) {

    if (binaryArray[i] <= x) {
      result += '1'
      newX = x - binaryArray[i]; // 75 - 64 = 11 | 11 - 8 = 3 | 3 - 2 = 1
      x = newX;

    } else {
      result += '0';
    }
  }

  return result;
}

document.getElementById("input").addEventListener("change", function() {
  var input = parseInt(this.value);
  document.getElementById("result").innerText = binaryConverter(input);
})
Enter number: <input id="input"> 
<br>
Result: <span id="result"></span>

【讨论】:

    【解决方案2】:

    你可以这样做

    document.getElementById('demo').innerHTML = ar.join('')
    

    function binaryConverter(x) {
      if (x === "") {
        return 0;
      }
    
      let binaryArray = new Array(128, 64, 32, 16, 8, 4, 2, 1);
      let result = new Array();
      let newX;
    
      //pelda: x = 75
    
      for (let i = 0; i < binaryArray.length; i++) {
    
        if (binaryArray[i] <= x) {
          result.push('1');
          newX = x - binaryArray[i]; // 75 - 64 = 11 | 11 - 8 = 3 | 3 - 2 = 1
          x = newX;
    
        } else {
          result.push('0');
        }
      }
    
      writeBinaryNumber(result);
    
    }
    binaryConverter(75)
    function writeBinaryNumber(ar) {
     document.getElementById('demo').innerHTML = ar.join('')
    }
    #demo{
     color:red
    }
    &lt;p id="demo" &gt;&lt;/p&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-03
      • 1970-01-01
      • 2010-12-25
      • 1970-01-01
      • 2022-12-19
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多