为什么每行中的数字分别不起作用?
它仅适用于最后一行,我不知道为什么。
function sortowanie(a, b) {
return a-b;
}
var tab = new Array(20);
var tabS = new Array(5);
var sumaS = new Array(5);
for(var i = 0; i<5; i++) {
tab[i] = new Array(5);
tabS[i] = 0
}
for(var i = 0; i<5; i++) {
for(var j = 0; j<5; j++) {
tab[i, j] = Math.floor(Math.random()*90) + 10;
document.write("["+tab[i, j]+"]"+" ");
sumaS[j] = tab[i, j];
}
tabS[i] = sumaS.sort(sortowanie);
document.write("<br>");
}
for(var i = 0; i<5; i++) {
document.write(tabS[i] + "<br>");
}
我希望例如:
1 12 45 55 76<br>
0 43 76 88 92<br>
..等等
答案 0 :(得分:0)
两个问题:
tab[i, j]
应该真的是tab[i][j]
summaS
循环的每次迭代中都对i
数组进行了变异,因此实际上您一次又一次地将 same 数组分配给结果。将其分配给tabS[i]
之后的修改 在tabS[i]
中仍然可见,因此最后您会多次看到同一数组。通过在外部循环内移动summaS
数组的初始化来解决此问题:
function sortowanie(a, b) {
return a-b;
}
var tab = new Array(20);
var tabS = new Array(5);
for(var i = 0; i<5; i++) {
tab[i] = new Array(5);
tabS[i] = 0
}
for(var i = 0; i<5; i++) {
var sumaS = new Array(5);
for(var j = 0; j<5; j++) {
tab[i][j] = Math.floor(Math.random()*90) + 10;
document.write("["+tab[i][j]+"]"+" ");
sumaS[j] = tab[i][j];
}
tabS[i] = sumaS.sort(sortowanie);
document.write("<br>");
}
for(var i = 0; i<5; i++) {
document.write(tabS[i] + "<br>");
}