2

我是一个初学者,我找到了一些有用的例子来说明我想做的事情。问题是我发现的示例没有足够的评论让我理解发生了什么。所以,我希望有人可以帮助我将我找到的代码实现到我已经拥有的代码中。我正在制作一个文本操作区域来玩密文。这一切都在一个 HTML 文本区域内完成。我有一个名为 的函数"function G_Group(size, count)",它将文本分成选择的行和列,效果很好。我要添加的下一个工具会将这个矩阵从 (x,y) 转置到 (y,x)。因为我有“功能G-Group”功能,我不相信我需要切片任何东西。我在http://rosettacode找到了一些 JavaScript 转置代码。 但我不知道如何更改值以将其添加到我已经拥有的值中。

函数 G_Group(size, count) 是这样调用的。

<input type= button value="Grouping" onclick = "return G_Group(0, 0)" title="grouping" />

这是我如何将文本分成行和列:

function G_Group(size, count)
{
   if (size <= 0)
   {
      size = document.encoder.group_size.value;
      if (size <= 0)                 
      {
         alert('Invalid group size'); 
     return false;
      }
   }
   if (count <= 0)
   {
      count = document.encoder.group_count.value;
      if (count <= 0)             
      {
         alert('Invalid group count');
     return false;
      }
   }

   var t = document.encoder.text.value;
   var o = '', groups = 0;
   t = Tr(t, " \r\n\t");
   while (t.length > 0)
   {
      if (o.length > 0)
      {
         o += ' ';
      }
      if (groups >= count)
      {
         o += "\n";
     groups = 0;
      }
      groups ++;
      o += t.slice(0, size);
      t = t.slice(size, t.length);
   }
   document.encoder.text.value = o;
   return false;
}

这是我要修改以转置数组的代码。

function Matrix(ary) {

    this.mtx = ary
    this.height = ary.length;
    this.width = ary[0].length;
}

Matrix.prototype.toString = function() {
    var s = []
    for (var i = 0; i < this.mtx.length; i++) 
        s.push( this.mtx[i].join(",") );
    return s.join("\n");
}

// returns a new matrix
Matrix.prototype.transpose = function() {
    var transposed = [];
    for (var i = 0; i < this.width; i++) {
        transposed[i] = [];
        for (var j = 0; j < this.height; j++) {
            transposed[i][j] = this.mtx[j][i];
        }
    }
    return new Matrix(transposed);
}

我知道我可能正在接近这一切都是错误的。而且我知道我的问题是非常基本的,我有点不好意思问这些简单的问题。请原谅我。我今年 43 岁,20 年前在大学里学过 c 编程。我很擅长 HTML 和 CSS,但我在很多方面都缺乏。希望有人可以帮助我。谢谢。

4

0 回答 0