开发者问题收集

在 Javascript 中输出数组

2020-06-28
67

我在 JavaScript 中拥有以下数组,用于创建各队相互比赛的赛程列表。

[["a", "b", "c", "d"], ["a", "c", "b", "d"], ["a", "d", "b", "c"]]

我当前的代码:

var f = "";     
   for (var z=0; z<matches.length; z++)
   {
     f += "Fixture " + (z + 1 ) + " " + matches[z] + "<br/>";
   }  
  document.getElementById("ln").innerHTML = f;
}

这将输出数组为:

Fixture 1 a,b,c,d
Fixture 2 a,c,b,d
Fixture 3 a,d,b,c

但是我希望它看起来像:

Fixture 1
a V b
c V d
Fixture 2
a V c
b V d

基本上,我需要在第一个值之后的每个第二个值添加一个“V”,并在每 2 个值之后添加一个额外的 < br/ >。

有人可以帮我解决这个问题或者给我指出正确的方向吗?

2个回答

试试这个。如果有效就给我点赞。

var f = "";     
   for (var z=0; z<matches.length; z++)
   {
     code1 = matches[z].slice(0,2).join(" V ");
     code2 = matches[z].slice(2).join(" V ");
     f += "Fixture " + (z + 1 ) + "<br/>" + code1 + "<br/>" + code2 + "<br/>";
   }  
  document.getElementById("ln").innerHTML = f;
}
Ravi Garg
2020-06-28

spycbanda 的代码很好,但只适用于 4 支球队。通过使用内部循环,您可以处理无限数量的球队:

var f="";
for(var z=0; z<matches.length; z++) {
  f += "Fixture " + (z + 1) + "<br/>";
  for(let y=0; y<matches[z].length; y+=2)
    f+= matches[z][y] + " V " + matches[z][y+1] + "<br/>";
  f += "<br/>";   
}
document.getElementById("ln").innerHTML = f;
drnugent
2020-06-28