Есть ассоциативный многомерный массив
var
sedan = {
'eject' : {
'13' : 50,
'14' : 50,
'15' : 50
},
'installation' : {
'13' : 25,
'14' : 40,
'15' : 50
},
'balancing' : {
'13' : 50,
'14' : 60,
'15' : 80
}
},
crossover = {
'eject' : {
'13' : 50,
'14' : 60,
'15' : 60
},
'installation' : {
'13' : 50,
'14' : 60,
'15' : 60
},
'balancing' : {
'13' : 444,
'14' : 555,
'15' : 666
}
},
truckPrice = 370;
и функция, чтобы получить текущее значение выбранной машины. В bodyRes попадает : 'sedan' , 'crossover' или truck', что равнозначно именам ключей ассоциативного массива.
var bodyRes = bodyCheck();
function bodyCheck() {
if (body == 'Седан') {
x = 'sedan';
}
else if (body == 'Кроссовер') {
x = 'crossover';
}
else if (body == 'Грузовик') {
x = 'truck';
}
return x;
}
Далее я хочу сравнить выбранный тип кузова машины ( 'sedan' , 'crossover' или truck') и обратиться к соответствующему ключу массива, затем к услуге ('eject', 'installation' или 'balancing') и добавить туда выбранный диаметр колеса
sedan['balancing'][diameter]
bodyRes [ 'услуга' ] [ 'диаметр колеса' ] = число - значение ключа массива
var balancingSum = balancingCheckSum();
function balancingCheckSum() {
var x = bodyRes;
console.log( bodyRes );
console.log( x['balancing'][diameter] );
return x;
};
console.log(balancingSum); - x is undefined
Выбранный диаметр передаётся нормально и я могу обратиться к ключу массива и достать значение, подставляя [diameter], и возвращается, например, 50 или 80
Но как подставить туда результат работы функции bodyCheck() в переменной bodyRes? Чтобы переменная balancingSum возвращала только число-сумму, с уже выбранными значениями массива, в зависимости от того, что выбрал пользователь?
sedan['balancing'][diameter]
crossover['balancing'][diameter]