我知道这可能是一个菜鸟问题,并且有很多类似的命名问题,但我找不到解决问题的解决方案。
我正在尝试使用以下代码访问一个简单的嵌套JS对象:
var test = '99999999';
var test_object = {};
test_object[test] = {"ak1" : "v1", "ak2" : "v2"};
console.log(test_object);
console.log(test_object.test);
但由于某些原因,我在尝试访问'test'属性时仍然会'未定义'。
我在这里创造了一个简单的小提琴: https://jsfiddle.net/nga7zqkf/
我无法弄清楚为什么我无法访问'test'属性。有人可以帮我一点吗?
谢谢!
答案 0 :(得分:7)
var test = '99999999'; test_object[test] = {"ak1" : "v1", "ak2" : "v2"};
您永远不会设置 test 属性,您可以设置 99999999 属性。
如果要使用方括号表示法设置test属性,则[
和]
之间的表达式必须评估为"test"
。
test_object["test"] = {"ak1" : "v1", "ak2" : "v2"};
或者
var test = 'test';
test_object[test] = {"ak1" : "v1", "ak2" : "v2"};
答案 1 :(得分:1)
请查看以下示例
var test = 99999999;
var test_object = {};
var test_object2 = {};
test_object[test] = {"ak1" : "v1", "ak2" : "v2"};
console.log(test_object);
console.log(test_object[test]);
test_object2.test = {"ak1" : "v1", "ak2" : "v2"};
console.log(test_object2);
console.log(test_object2.test);