Javascript 如何请求字符串,然后将其用作数组的一部分?

Javascript 如何请求字符串,然后将其用作数组的一部分?,javascript,Javascript,大家好,我有一个复杂的问题,我有一个数组,它保存着关于冠军联赛的信息,比如 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 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)

按照您提供的方式,您的团队统计数据既不是有效的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];

假设您使用以下HTML:

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

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

您可以使用提示命令要求用户输入信息HMM某些IE不会接受提示(除非更改了安全选项…)您没有编写有效的JavaScript,这看起来应该是一个对象。您可以通过
Object.keys
Object.getOwnPropertyNames
以数组的形式获取对象上的所有键。
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>';
    }
};