无法获取关联数组值?

Unable to get associative array value?

不太确定这里发生了什么,所以希望能提供一些说明。

我创建了一个名为 DBstats 的对象,它保存的值基于:

团队(字符串)==> {统计对象}

然而,当我尝试使用带有变量的键来获取对象时,我得到了未定义,但是当我使用文字字符串值时,它工作得很好。

//populate the associative array, result is an object passed in as a parameter
for (var i = 0; i < result.length; i++)
{
    DBstats[result[i].Team] = result[i];
}

var Team1str = "team1";
console.log(DBstats); //prints everything in the associative array, confirming string => object
console.log(DBstats["team1"]); //prints out object
console.log(DBstats[Team1str]);  //prints undefined???

我哪里不明白?

result array =
{
  team1: {team1.name, data... }
  team2: {team2.name,  data... }
  team3: {team3.name, data... } 
  team4: {team4.name,  data... }
  team5: {team5.name, data... } 
  team6: {team6.name,  data... }
  team7: {team7.name,  data... }
  team8: {team8.name,  data... }
  team9: {team9.name,  data... }

}

嘿,你的问题有很多问题,但我喜欢这种问题(它们就像拼图)。

所以你可能想要这个:

    const result = [
      {name: 'team1', data: {}},
      {name: 'team2', data: {}},
      {name: 'team3', data: {}},
    ]
    
    let DBstats = {}
    
    for (var i = 0; i < result.length; i++)
    {
        DBstats[result[i].name] = result[i];
    }
    
    var Team1str = "team1";
    console.log(DBstats); //prints everything in the associative array, confirming string => object
    console.log(DBstats["team1"]); //prints out object
    console.log(DBstats[Team1str]);  //prints out object

  1. 您可能来自 PHP 世界。而且,不,在 JS 中没有 "associative array" 这样的术语。相反,它被称为 "object".
  2. 我将你的非 JS 数组 result 格式化为实际的 JS 语法。
  3. 一切正常(按 "Run code snippet" 自行检查)!