文本区域转置

时间:2012-11-20 13:37:47

标签: javascript arrays transpose

我是初学者,我找到了一些有用的例子来说明我想做的事情。问题是我发现的例子没有足够的评论让我理解发生了什么。所以,我希望有人可以帮我实现我已经在我已经拥有的代码中找到的代码。我正在创建一个文本操作区域来使用密文。这一切都在一个HTML文本区域内完成。我有一个名为"function G_Group(size, count)"的函数,它将文本分解为选择的行和列,并且它运行良好。我想要添加的下一个工具将此矩阵从(x,y)转换为(y,x)。因为我有“功能G-Group”功能,我不相信我需要切片。我在http://rosettacode.org/wiki/Matrix_transposition#JavaScript找到了一些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年前在大学读过课程。我对HTML和CSS非常好,但我缺少很多领域。希望有人可以帮助我。感谢。

0 个答案:

没有答案