JavaScript将数据转储到表中

时间:2016-12-19 17:35:41

标签: javascript html arrays function

所以我正在完成一项任务,我们已经为虚拟社交网络完成了各种任务。更长的故事,其中一个任务要求我使用已插入到我们正在使用的基础中的方法,如下所示:

function dump(obj) {
var out = '';
var pre = document.createElement('pre');
for (var i in obj) {
    out += i + ": " + obj[i] + "\n";
}
pre.innerHTML = out;
document.body.appendChild(pre)
}

此代码从数组中获取数据,该数组包含人与人之间关系的名称和强度,然后将它们组成一组很好的字符串。然后在另一个javascript文件中调用此方法,该文件通过主html文件链接到上面显示的示例。被称为如下:

dump(MATRIX);

MATRIX是我之前讨论的有问题的数组。然后按如下方式写出数据:

Bob: 1,1,0,0,0,0,0,0,0,0,0,0,0
Clare: 1,0,0,1,0,0,1,1,1,1,0,0,0
Gill: 0,0,0,0,0,1,0,1,0,0,0,1,0
Abdul: 0,0,0,0,0,0,0,0,0,1,0,0,0
Hugh: 0,0,0,0,0,0,0,0,1,0,1,0,0
Dave: 0,1,1,1,0,0,0,0,0,0,0,0,0
Earl: 0,0,1,0,1,0,0,0,0,0,0,0,0
Fay: 0,0,0,0,1,1,1,0,0,0,0,0,0
Iris: 0,0,0,0,0,0,0,0,0,0,1,1,1
Jane: 0,0,0,0,0,0,0,0,0,0,0,0,1

所以现在我的问题是如何有效地传递或插入表中,考虑到我无法改变实际转储功能的事实。我已尝试以各种方式寻址MATRIX,例如通过名称定义数组中每个元素的方式,以及尝试将转储存储在另一个变量中,但是当以这两种方式进行寻址时,它将返回为undefined。所以基本上我需要最简单的方法将转储转换为表格式,每个单元格包含一个名称/数字,删除语法。在此先感谢:)

3 个答案:

答案 0 :(得分:0)

我想你想把这个数组加入一个字符串:

for(key in matrix){
matrix[key]=matrix[key].join("");
}

如果逗号是字符串的一部分,则可以替换:

for(key in matrix){
matrix[key]=matrix[key].replace(",","");
}

答案 1 :(得分:0)

您是否尝试使用标签替换逗号和空格

Bob:    1   1   0   0   0   0   0   0   0   0   0   0   0
Clare:  1   0   0   1   0   0   1   1   1   1   0   0   0
Gill:   0   0   0   0   0   1   0   1   0   0   0   1   0
Abdul:  0   0   0   0   0   0   0   0   0   1   0   0   0
Hugh:   0   0   0   0   0   0   0   0   1   0   1   0   0
Dave:   0   1   1   1   0   0   0   0   0   0   0   0   0
Earl:   0   0   1   0   1   0   0   0   0   0   0   0   0
Fay:    0   0   0   0   1   1   1   0   0   0   0   0   0
Iris:   0   0   0   0   0   0   0   0   0   0   1   1   1
Jane:   0   0   0   0   0   0   0   0   0   0   0   0   1

答案 2 :(得分:0)

我只是想我会更新这个。最后,我使用转储废弃了,经过相当多的摆弄后才得到了这个。

name[0].innerHTML = "Bob";
for (prop in MATRIX.Bob){
    sets[0][prop].innerHTML = MATRIX.Bob[prop];
}
name[1].innerHTML = "Clare";
for (prop in MATRIX.Clare){
    sets[1][prop].innerHTML = MATRIX.Clare[prop];
}
name[2].innerHTML = "Gill";
for (prop in MATRIX.Gill){
    sets[2][prop].innerHTML = MATRIX.Gill[prop];
}
name[3].innerHTML = "Abdul";
for (prop in MATRIX.Abdul){
    sets[3][prop].innerHTML = MATRIX.Abdul[prop];
}
name[4].innerHTML = "Hugh";
for (prop in MATRIX.Hugh){
    sets[4][prop].innerHTML = MATRIX.Hugh[prop];
}
name[5].innerHTML = "Dave";
for (prop in MATRIX.Dave){
    sets[5][prop].innerHTML = MATRIX.Dave[prop];
}
name[6].innerHTML = "Earl";
for (prop in MATRIX.Earl){
    sets[6][prop].innerHTML = MATRIX.Earl[prop];
}
name[7].innerHTML = "Fay";
for (prop in MATRIX.Fay){
    sets[7][prop].innerHTML = MATRIX.Fay[prop];
}
name[8].innerHTML = "Iris";
for (prop in MATRIX.Iris){
    sets[8][prop].innerHTML = MATRIX.Iris[prop];
}
name[9].innerHTML = "Jane";
for (prop in MATRIX.Jane){
    sets[9][prop].innerHTML = MATRIX.Jane[prop];
}

这里有两个表数组,名称和集合是2D数组。 for循环搜索MATRIX数组中的每个人链接并获取属性。然后将它们设置为表中的相应位置。我知道它不完全是我原本想要做的答案,但它是经过多次试验和错误后的最好方法我发现能够输出存储在数组中包含的数组中的值,在本例中为MATRIX.nameofperson