提取索引数组中的整数值

Extract int value in index array?

本文关键字:整数 索引 数组 提取      更新时间:2023-09-26

所以我对我在html中制作的这个分数表有一个问题。

var puntenTelling= new Array(3,4,2,1,5);
var teamNamen = new Array(puntenTelling[0]+"Team1", puntenTelling[1]+"Team2",puntenTelling[2]+ "Team3", puntenTelling[3]+"Team4", puntenTelling[4]+"Team5");
puntenTelling.sort(function(a, b){return b-a});
teamNamen.sort();
teamNamen.reverse();
for (var i=0; i<5; i++) {
  document.write("<tr><td>" + teamNamen[i]);
  document.write("<td>" + puntenTelling[i] + "</td></tr>");
}

基本上,这给了我一个排序表,该表按点排序,并根据与点链接的队名排序。我必须在 teamNames 的数组中包含点(puntenTelling),否则我无法以与对点进行排序相同的方式对其进行排序。

现在我像这样打印出来:

Teamname  Points
5Team5       5
4Team2       4
3Team1       3
2Team3       2
1Team4       1

我只想摆脱"5,4,3,2,1"在"团队5,团队2"等之前。

我该怎么做?

你连接点和团队名称的方法不是很干净和健壮(一个名为1860 Munich的团队怎么样?更好的方法是创建一个同时包含团队名称及其点的对象数组,并使用此数组:

var teamsWithPoints = [
    { name: "team1", points: 3 },
    { name: "team2", points: 4 },
    { name: "team3", points: 2 },
    { name: "team4", points: 1 }
  ];
teamsWithPoints.sort(function(a, b) { return b.points - a.points });
document.write("<table>");
teamsWithPoints.forEach(function(team) {
  document.write("<tr>");
  document.write("<td>" + team.name);
  document.write("<td>" + team.points);  
});

在我看来

,你需要一个字典(关联数组),其中键表示团队在列表中的顺序。按键对数组进行排序,然后只打印值。它甚至可以是多维的,其中键是所需的排名位置,值包含团队名称和积分。

当你创建数组时,你正在创建这样的对象。

var teamNamen = new Array(puntenTelling[0]+"Team1", puntenTelling[1]+"Team2",puntenTelling[2]+ "Team3", puntenTelling[3]+"Team4", puntenTelling[4]+"Team5");

如果不希望该值包含在字符串值中,则可以像这样声明teamNamen

var teamNamen = new Array("Team1", "Team2","Team3","Team4","Team5");

但是,这将使您的原始排序无法正常运行。因此,您可以尝试以下代码来维护正确的排序功能,同时打印正确的值。

for (var i=0; i<5; i++) {
  document.write("<tr><td>" + teamNamen[i].substring(1));
  document.write("<td>" + puntenTelling[i] + "</td></tr>");
}