【问题标题】:Matrix of numbers javascript数字矩阵 javascript
【发布时间】:2016-10-27 05:43:53
【问题描述】:

我需要 JS 中的一个函数的帮助,该函数按给定整数 N 打印矩阵,如下所示:

N = 2;
Matrix: 1 2
        2 3
N = 3;
Matrix: 1 2 3
        2 3 4
        3 4 5

我需要用 2 个循环来完成,但我不知道怎么做

function solve(args) {
  var n = args[0];  
}

PS:很抱歉将矩阵插入到 JS 代码中,但这样我可以将结果可视化。

【问题讨论】:

  • 按 console.log() 打印,或者作为带有换行符的字符串或作为 document.createElement 打印?
  • 您有来自 2 个不同需求的 2 个答案,在使用控制台打印时,在 html 页面中进行第二次打印。

标签: javascript loops matrix


【解决方案1】:

这是逻辑

function paintMatrix(n) {

    for (var i = 1; i <= n; i++) {
      var result = "";
      for (var j = 1; j <= n; j++) {
        result += (i + j - 1);
      }
      console.log(result);
    }
}

paintMatrix(3);

【讨论】:

    【解决方案2】:

    考虑以下使用 ES6 Array.fillArray.mapArray.join 函数的简短解决方案:

    function printMatrix(size){
         if (size <= 1) console.log(size); // if 0/1 was passed in - outputs it as is
         var len = size, count = Array(size).fill(null), matrix = "";
    
         while (len--) matrix = count.map((v, k) => len + 1 + k).join(" ") +"\n" + matrix;
         console.log(matrix);
     }
    
     console.log("3 dimensional matrix:");
     printMatrix(3);
    
     console.log("5 dimensional matrix:");
     printMatrix(5);
    

    输出:

    3 dimensional matrix:
    1 2 3
    2 3 4
    3 4 5
    
    5 dimensional matrix:
    1 2 3 4 5
    2 3 4 5 6
    3 4 5 6 7
    4 5 6 7 8
    5 6 7 8 9
    

    【讨论】:

      【解决方案3】:
      function doMatrix(n){
          var i=0;
          var ret = "";
          for(var x=1+i; x<=n; x++){
            for(var l=x; l<n+x; l++)
                 ret += l;
             ret += "\n";
          }
          return ret;
      }
      

      https://jsfiddle.net/rksLjjzf/

      【讨论】:

        【解决方案4】:
        function martix(number) {
            for (var y = 1; y<=number; y++) {
                for (var x = y; x<number + y; x++) {
                    var n = x;
                    print(n + '&nspb;');
                }
                print('<br />');
            }
        }
        

        其中“print”是一个将给定输入写入“某处”的函数

        【讨论】:

          【解决方案5】:

          你可以试试这样的:

          function createMatrix(len){
            var result = [];
            for (var i=0; i<len; i++){
              result.push(new Array(len).fill(i).map(function(item, index){ return item + index}));
            }
            return result;
          }
          
          console.log(createMatrix(3))

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-11-06
            • 1970-01-01
            • 2014-01-14
            • 2023-03-03
            • 2013-05-05
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多