如何让输出显示在一行中没有空格?

时间:2015-09-28 05:37:11

标签: javascript math

我有一个简单的Javascript问题,我正在研究,重点是......

  1. 接受输入,如123
  2. 将输入分成单个数字,然后将这些单个数字平方,从而得到149。
  3. 显示" 149" (在这种情况下)作为输出。
  4. 我不知道如何将其显示为149.我只能将其显示为

    1

    4

    9

    当然,我可能会尝试将其添加到数组然后循环结果...有些东西告诉我这是一个缓慢的解决方案,并且有一个更快的解决方案。这是我的代码。

    function squareDigits(num) {
        //Convert input to string
        num = num + "";
        var newnum;
        var len = num.length;
    
        //Split into digits, and square that result baby
        for (i = 0; i < len; i++) {
            var digit = num.substr(i, 1);
            newnum = Math.pow(digit, 2);
            console.log(newnum);
        }
    
    }
    
    squareDigits(123);
    

4 个答案:

答案 0 :(得分:5)

  1. 在循环外创建空数组
  2. 添加数组中每个数字的方块
  3. 循环结束后加入数组
  4. &#13;
    &#13;
    function squareDigits(num) {
      num = '' + num;
      var len = num.length;
    
      var squares = []; // Define empty array
      //Split into digits, and square that result baby
      for (i = 0; i < len; i++) {
        var digit = num.substr(i, 1);
        squares.push(Math.pow(digit, 2)); // Push the square of the digit at the end of array
      }
    
      return squares.join(''); // Join the array elements with empty string as glue
    }
    
    var squares = squareDigits(123);
    console.log(squares);
    document.write(squares);
    &#13;
    &#13;
    &#13;

    通过字符串连接

    1. 在for循环
    2. 之前声明一个空字符串
    3. 首先将数字转换为字符串
    4. ,将数字的平方连接到字符串

      &#13;
      &#13;
      function squareDigits(num) {
        //Convert input to string
        num = num + "";
        var newnum = ''; // Decalare variable with Empty string
        var len = num.length;
      
        //Split into digits, and square that result baby
        for (i = 0; i < len; i++) {
          var digit = num.substr(i, 1);
          newnum += '' + Math.pow(digit, 2); // Cast the square to string and then concatenate to the string
        }
      
        return newnum; // Return the string
      }
      
      var squares = squareDigits(123);
      document.write(squares);
      &#13;
      &#13;
      &#13;

答案 1 :(得分:3)

尝试使用String.prototype.split()Array.prototype.map()Array.prototype.join()

&#13;
&#13;
function squareDigits(num) {
  return String(num).split("")
    .map(function(n) {
      return Math.pow(n, 2);
    }).join("");
}
console.log(squareDigits(123));
&#13;
&#13;
&#13;

答案 2 :(得分:1)

这个怎么样?

function squareDigits(num) {
    //Convert input to string
    num = num + "";
    var newnum;
    var len = num.length;
    var digits = '';

    //Split into digits, and square that result baby
    for (i = 0; i < len; i++) {
        var digit = num.substr(i, 1);
        newnum = Math.pow(digit, 2);
        digits += '' + newnum

    }
    console.log(digits);
}

答案 3 :(得分:-1)

尝试process.stdout.write,如

process.stdout.write(newnum);