Javascript объект не определен - PullRequest
0 голосов
/ 29 февраля 2020

Я немного озадачен здесь. Может кто-нибудь сказать мне, почему это работает:

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"

Но это не делает и выдает ошибку?

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 

В чем разница и как я должен получить значение из последнего ? Я предполагаю, что мне нужно сделать какую-то проверку, так как один работает, а другой нет.

1 Ответ

3 голосов
/ 29 февраля 2020

В вашем втором 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...