我想创建一个可以像status[a][b]
那样访问的字典
其中a
和b
是初始化时未知的随机字符串。
这是确切的用例:
status = {}
name = {};
time = {};
score = {};
for (i=0; i<$scope.submissions.length; i++)
{
e = $scope.submissions[i];
status[e.rno] = status[e.rno] || {};
time[e.rno] = time[e.rno] || 0;
score[e.rno] = score[e.rno] || 0;
status[e.rno][e.problem] = status[e.rno][e.problem] || 0;
if (e.score == 100 && status[e.rno][e.problem] == 0)
{
status[e.rno][e.problem] = 100;
time[e.rno] += e.id;
score[e.rno] += 100;
}
}
console.log(score["20161230"]);
它会抛出错误:Error: status[e.rno] is undefined
答案 0 :(得分:1)
status
是一个窗口属性,您无法更改其类型。因此,如果您在函数范围内(以避免使用全局窗口属性),则应使用var
;如果必须是全局的,则应使用其他名称。