我已将json响应保存为chrome控制台中的全局对象变量(chrome存储为 temp1 ),将其对象属性设置为下面的fieldsObj1:
>> var fieldsObj1 = temp1.fields;
chrome控制台中的这个命令显示了fieldsObj1属性的树形视图,我在下面展开并粘贴了这些属性,留下了相关的' undefined' property: contentAll.full 。
>> fieldsObj1
Object {contentText.split: Array[12], metricsListed: Array[1], sourceDescription: Array[1], sourceCode: Array[1], geoLocation: Array[1]…}
_rev: Array[1]
coded.matchedIn: Array[3]
[...此处跳过了许多按字母顺序排列的属性] ...直到我们在下面找到相关的 contentAll.full
contentAll.full: Array[1]
0: "Just updated my blog. Check it out! In Spite of Threats, Parents, States and Teachers are Dumping Common Core http://t.co/wlxofg2G2K #tcot"
length: 1
__proto__: Array[0]
[... Chrome控制台对象树中列出的更多属性...]
contentAll.full 在Chrome树对象查看器中显示为'数组[1]',数组项是我尝试存储到的文本数据局部变量。
但是,以下命令表明由于包含对象 fieldsObj1.contentAll 未定义,数组项无法访问。
fieldsObj1.contentAll.full[0]
TypeError: Cannot read property 'full' of undefined
fieldsObj1.contentAll.full
TypeError: Cannot read property 'full' of undefined
fieldsObj1.contentAll
undefined
当我在chrome树视图中看到它时,它是如何定义的?
如何将看似无法访问的数据保存到本地变量?
答案 0 :(得分:2)
fieldsObj1.contentAll.full[0]
与
不同fieldsObj1['contentAll.full'][0]
sqare括号表示法允许您更自由地定义对象键。正如您所看到的,fieldsObj1
上有一个名为&contentAll.full'的属性,但定义此类属性并不等同于创建fieldsObj1.contentAll
对象并定义属性{{1那里。