我是一个初学者,我找到了一些有用的例子来说明我想做的事情。问题是我发现的示例没有足够的评论让我理解发生了什么。所以,我希望有人可以帮助我将我找到的代码实现到我已经拥有的代码中。我正在制作一个文本操作区域来玩密文。这一切都在一个 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,但我在很多方面都缺乏。希望有人可以帮助我。谢谢。