简体   繁体   English

Javascript 对象未定义问题

[英]Javascript object undefined issue

I'm a little stumped here.我有点难住这里。 Can someone tell me why this works:有人能告诉我为什么这样做:

var selectedAttrs = {"mattress_size_variation":{"displayName":"Mattress Size","value":"King","displayValue":"King"},"mattress_feel_variation":{"displayName":"Mattress Feel","value":"Soft","displayValue":"Soft"}};

var selectedAttributes = JSON.parse(selectedAttrs);
return selectedAttributes.mattress_size_variation.value.toLowerCase();

//Returns "King"

But this does not and throws an error?但这不会并引发错误?

var selectedAttrs = {"mattress_size_variation ":{"displayName":"Mattress Size","value":"Twin","displayValue":"Twin"}};

var selectedAttributes = JSON.parse(selectedAttrs);
return selectedAttributes.mattress_size_variation.value.toLowerCase();

TypeError: Cannot read property "value" from undefined 

What is the difference and how should I get the value from the last one?有什么区别,我应该如何从最后一个中获取值? I'm assuming I need to do some sort of check since one works and the other does not.我假设我需要做某种检查,因为一个有效而另一个无效。

There's a untrimmed space in your second JSON so you have to access that property using square brackets:第二个 JSON 中有一个未修剪的空间,因此您必须使用方括号访问该属性:

selectedAttributes['mattress_size_variation ']

 var selectedAttrs = '{"mattress_size_variation ":{"displayName":"Mattress Size","value":"Twin","displayValue":"Twin"}}' var selectedAttributes = JSON.parse(selectedAttrs); console.log(selectedAttributes['mattress_size_variation '].value);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM