代码:
var obj = {val1: 'Test',val2: 'Test','array[]': [ '1', '1', '1', '1', '1', '1', '1', '1', '1', '1' ] };
console.log(obj.array);
问题:上面的console.log返回未定义。对于许多人来说,这也许很明显,但是我是个新手,试图弄清楚如何记录array [](如果将属性简单定义为{'array':[“ 1”,“ 1”, “ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”]})。
预期输出:[“ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”,“ 1”]
答案 0 :(得分:4)
像这样:
console.log(obj['array[]']);
您尝试访问的属性称为array[]
,而不是array
。
您必须使用方括号表示法访问属性(即obj['array[]']
而不是obj.array[]
),因为属性名称不是有效的JavaScript标识符,即,字母数字字符序列包括下划线(_)和美元符号(“ $”),它们不能以数字开头。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors
答案 1 :(得分:1)
对象属性名为array[]
,而不是array
。将其重命名为array
,您将获得期望的结果。
var obj = {val1: 'Test',val2: 'Test','array': [ '1', '1', '1', '1', '1', '1', '1', '1', '1', '1' ] };
console.log(obj.array);