初学者在这里。我有一个文本区域。我想将文本分解成一个矩阵,然后转置行和列。我有将文本分成组的功能。另一个将它们放入数组的函数,就我所知。我真的不知道如何将它们组合成一个功能或是否需要。我相信我应该通过创建子数组将数组转换为矩阵,然后我最终可以将文本从 [i][j] 转置为 [j][i]。到目前为止这是对的还是我遗漏了什么?我很想在某个地方看到一个可行的示例,但似乎找不到。
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 toArray()
{
var str = document.encoder.text.value;
var nstr = str.split(" ");
document.encoder.text.value = nstr;
}
//i am having trouble with this part. don't know how to call the document.encoder.text.value into the list and don't know how to call group_size into elementsPerSubArray
function toMatrix(list, elementsPerSubArray) {
var matrix = [], i, k;
for (i = 0, k = -1; i < list.length; i++) {
if (i % elementsPerSubArray === 0) {
k++;
matrix[k] = [];
}
matrix[k].push(list[i]);
}
return matrix;
}
最后,我不知道如何将结果发布回 textarea
到目前为止,我可以将文本分组到我从选择框中选择多少个字符的块中(我有 30 个选项),并且可以在任何我想要的地方进行换行。就矩阵而言,将在 1 组 (X) 字符后进行换行。鉴于此文本:
OOMUCHABOUTMYCOUNTRYICAREALOTH
我可以把它分成这样的组。
OOMUC HABOU TMYCO UNTRY ICARE ALOTH
或者如果我想这样。
OOMUC
HABOU
TMYCO
UNTRY
ICARE
ALOTH
我想要做的是能够翻转矩阵,所以它看起来像这样
AIUTHO
LCNMAO
...ect
HEYOUC