无法获取关联数组值?
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
- 您可能来自 PHP 世界。而且,不,在 JS 中没有 "associative array" 这样的术语。相反,它被称为 "object".
- 我将你的非 JS 数组
result
格式化为实际的 JS 语法。
- 一切正常(按 "Run code snippet" 自行检查)!
不太确定这里发生了什么,所以希望能提供一些说明。
我创建了一个名为 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
- 您可能来自 PHP 世界。而且,不,在 JS 中没有 "associative array" 这样的术语。相反,它被称为 "object".
- 我将你的非 JS 数组
result
格式化为实际的 JS 语法。 - 一切正常(按 "Run code snippet" 自行检查)!