-1

大家好,我有一个复杂的问题,我有一个数组,其中包含有关冠军联赛信息的信息,例如

var teamstats=[ Bayern Munich: {wins:4,loses:1,goals:9,draws:2},
              Fc Barcelona: {wins:4,loses:1,goals:9,draws:2},
               ..... ]

我可以通过在控制台上写入来获得每个团队的统计数据,例如 teamstats.Bayern Munich 我的问题是:我必须向用户询问团队名称,然后打印团队的统计数据。编辑:获取字符串部分是可以的。我试过了

var str = {"teamfromuser"}
var x=eval(str)
4

2 回答 2

3

以您提供的方式,您的团队统计数据不是有效的 JavaScript 甚至 JSON 他们应该写成

var teamstats={ "Bayern Munich": {wins:4,loses:1,goals:9,draws:2},
              "Fc Barcelona": {wins:4,loses:1,goals:9,draws:2},
               ..... };

因此,要查找您将使用的特定项目

var key = "Bayern Munich";
var stats = teamstats[key];
于 2013-06-08T17:03:51.843 回答
0

假设您使用以下 HTML:

<select id="teams"></select> <button id="show_stats">Show Stats</button>
<div id="stats"></div>

select您可以使用您的团队填充teamstats,然后将其用作用户输入以显示统计信息,类似于以下内容:

var teamstats = {
        "Bayern Munich": {wins:4,loses:1,goals:9,draws:2},
        "Fc Barcelona": {wins:1,loses:4,goals:3,draws:2}
    },
    teams = document.getElementById('teams');

for (var team in teamstats) {
    teams.appendChild(new Option(team, team));
}

document.getElementById('show_stats').onclick = function(ev) {
    ev.preventDefault();
    var stats = document.getElementById('stats'),
        teamstat = teamstats[teams.options[teams.selectedIndex].value];

    stats.innerHTML = '';
    for (var stat in teamstat) {
        stats.innerHTML += stat + ': ' + teamstat[stat] + '<br>';
    }
};

看演示

注意:就事件处理和跨浏览器兼容性而言,这并不是 Javascript 的完全最佳实践,它只是让您朝着正确方向前进的概念证明。

于 2013-06-08T17:14:03.287 回答