JaxAdam
@JaxAdam
Студент, обучаюсь верстке, стажируясь

Cannot read property 'b' of undefined. Как решить проблему с обьектом?

Возникла сложность с нахождением элемента объекта.

function recalc(){
                    var a = kitClass.options[kitClass.selectedIndex].value;
                    var b = kitMat.options[kitMat.selectedIndex].value;
                    var c = kitStyle.options[kitStyle.selectedIndex].value;
                	resultKitchen.innerHTML = tableFur.a.b.c*kitLength2.value + ' тг.';
                }


tableFur - объект внутри которого записаны числа.
Для получения окончательного числа нужно задать значения трем селектам.
kitClass, kitMat, kitStyle - селекты, внутри них option'ы с атрибутом value.

var kitLength = document.getElementById("kit-length");
                var kitLength2 = document.getElementById("kit-length2");
                var resultKitchen = document.getElementById("result-kitchen");
                var kitClass = document.getElementById("kitchen-class");
                var kitMat = document.getElementById("kitchen-material");
                var kitStyle = document.getElementById("kitchen-style");
                let	tableFur = {
                    "econom": {
                        "ldspMat": {"modern": 39000, "classic": 39000},
                        "ldspGlyan": {"modern": 49000, "classic": 49000},
                        "MdfPlenSup": {"modern": 79000, "classic": 89000},
                        "MdfPlenMat": {"modern": 59000, "classic": 69000},
                        "MdfPlenTextMat": {"modern": 59000, "classic": 69000},
                        "MdfPlenGlyan": {"modern": 69000, "classic": 79000},
                        "MdfPlenMetalik": {"modern": 69000, "classic": 79000}
                    },
                    "bazovaya": {
                        "ldspMat": {"modern": 49000, "classic": 49000},
                        "ldspGlyan": {"modern": 59000, "classic": 59000},
                        "MdfPlenSup": {"modern": 89000, "classic": 99000},
                        "MdfPlenMat": {"modern": 69000, "classic": 79000},
                        "MdfPlenTextMat": {"modern": 69000, "classic": 79000},
                        "MdfPlenGlyan": {"modern": 79000, "classic": 89000},
                        "MdfPlenMetalik": {"modern": 79000, "classic": 89000}
                    },
                    "obemnaya": {
                        "ldspMat": {"modern": 59000, "classic": 59000},
                        "ldspGlyan": {"modern": 69000, "classic": 69000},
                        "MdfPlenSup": {"modern": 99000, "classic": 109000},
                        "MdfPlenMat": {"modern": 79000, "classic": 89000},
                        "MdfPlenTextMat": {"modern": 79000, "classic": 89000},
                        "MdfPlenGlyan": {"modern": 89000, "classic": 99000},
                        "MdfPlenMetalik": {"modern": 89000, "classic": 99000}
                    },
                    "evro": {
                        "ldspMat": {"modern": 69000, "classic": 69000},
                        "ldspGlyan": {"modern": 79000, "classic": 79000},
                        "MdfPlenSup": {"modern": 109000, "classic": 119000},
                        "MdfPlenMat": {"modern": 89000, "classic": 99000},
                        "MdfPlenTextMat": {"modern": 89000, "classic": 99000},
                        "MdfPlenGlyan": {"modern": 99000, "classic": 109000},
                        "MdfPlenMetalik": {"modern": 99000, "classic": 109000}
                    },
                    "premium": {
                        "ldspMat": {"modern": 79000, "classic": 79000},
                        "ldspGlyan": {"modern": 89000, "classic": 89000},
                        "MdfPlenSup": {"modern": 119000, "classic": 129000},
                        "MdfPlenMat": {"modern": 99000, "classic": 109000},
                        "MdfPlenTextMat": {"modern": 99000, "classic": 109000},
                        "MdfPlenGlyan": {"modern": 109000, "classic": 119000},
                        "MdfPlenMetalik": {"modern": 109000, "classic": 119000}
                    },
                    "luxe": {
                        "ldspMat": {"modern": 89000, "classic": 89000},
                        "ldspGlyan": {"modern": 99000, "classic": 99000},
                        "MdfPlenSup": {"modern": 129000, "classic": 139000},
                        "MdfPlenMat": {"modern": 109000, "classic": 119000},
                        "MdfPlenTextMat": {"modern": 109000, "classic": 119000},
                        "MdfPlenGlyan": {"modern": 119000, "classic": 129000},
                        "MdfPlenMetalik": {"modern": 119000, "classic": 129000}
                    }
                };


Когда я в js задаю вот так:
alert(tableFur.econom.MdfPlenMat.classic);

все работает. А когда все связал с селектами перестало работать и выдает ошибку в консоли:
(index):445 Uncaught TypeError: Cannot read property 'b' of undefined
at recalc ((index):445)
at HTMLSelectElement. ((index):449)
at HTMLSelectElement.dispatch (jquery.js:2)
at HTMLSelectElement.y.handle (jquery.js:2)
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
0xD34F
@0xD34F
читайте, осознавайте свою ошибку
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Digital Sharks Казань
от 60 000 до 65 000 руб.
CS Money Санкт-Петербург
от 120 000 до 150 000 руб.
22 янв. 2019, в 13:15
2000 руб./за проект
22 янв. 2019, в 13:10
500 руб./в час
22 янв. 2019, в 12:48
7000 руб./за проект