0

我为自己找到自己的答案而自豪,但我放弃了。在尝试了我可以在 Stack 和其他任何地方找到的每个数组表示法之后,我仍然被卡住了。总结一下,我怎样才能通过这种方法或另一种方法来完成这项工作?所有方法都尝试在 IE 和 FF 中工作。没有铬。这似乎是当天最需要的符号。

var status=[
["#0f6122","0","GREEN"],
["#cbb924","1","YELLOW"],
["#f46906","2","ORANGE"],
["#990400","3","RED"],
["#585e72","4","DRKGREY"]
];

alert(status[3][2]); // I would assume should = RED instead it =’s “undefined”

在发布我的求助请求之前,stacks pre-submission Tips 给出了下面的代码作为另一种替代方法,在 chrome 中仍然无济于事,但在 ie 和 ff 中很好。

var status=[];
status[0]= {};
status[0]["color"]="GREEN";
status[0]["code"]="#0f6122";
status[0]["level"]=0;

alert(status[0]['color']); // never get this far. get same message as trying to use associative arrays with chrome “can not Set Property”

优格

4

1 回答 1

3

粘贴时:

status=[
    ["#0f6122","0","GREEN"],
    ["#cbb924","1","YELLOW"],
    ["#f46906","2","ORANGE"],
    ["#990400","3","RED"],
    ["#585e72","4","DRKGREY"]
];

在 chrome 的控制台中,它确实会默默地失败,但这与变量的名称有关:status正如您可能想象的那样,它并不完全是一个安全的变量名称。当我将其更改为 时foo,一切都很好。

这就是为什么你应该小心使用全局变量......当有疑问时打开浏览器窗口,打开控制台并输入你的变量名,如果你的变量名是自动完成的,不要使用它!

PS:foo[0]['color']可以写成foo[0].color

于 2012-08-03T14:20:33.973 回答