Ладно, постараюсь описать тот кусок, который не работает. Я сделал даже свой пример, но он работает. А в данном вычислительном скрипте не работает.
Итак, есть переменная car, содержащая результат вычислений предыдущих функций. В данном случае она содержит текстовое наименование машины. И есть функция. Привожу все по порядку.
Вот функция:
Цитата:
|
function f_lenObl(car, pointSelected) {
if (pointSelected == 0)
return 0;
var lenCarCost = [ [ ["ВАЗ"], [740] ],
[ ["Газель1"], [890] ],
[ ["Газель2"], [1090] ],
[ ["Газель3"], [1240] ],
[ ["Газель4"], [1540] ],
[ ["Газель5"], [1740] ],
[ ["Газель6"], [1940] ],
[ ["ЗИЛ"], [3900] ],
[ ["Камаз10"], [6460] ],
[ ["Камаз20"], [8600] ] ];
var j;
for (j = 0; j < 10; j++) {
if (lenCarCost[j][0] == car) {
alert('Сработало!');
return (lenCarCost[j][pointSelected]);
}
}
}
|
А вызов ее идет вот так: f_lenObl(car, 1);
Итак. Если я вместо параметра, передаваемого в функцию car (тот что в вызове) напишу просто какой-нибудь "Камаз10", текстом, то сравнение "lenCarCost[j][0] == car" вернет true когда строчка дойдет до Камаза в функции. Но стоит мне заменить ее на car, являющейся, повторюсь, результатом вычислений предыдущих функций и все-таки содержащая строчку "Камаз10" (именно эту строчку, они идентичны) - условие "lenCarCost[j][0] == car" не выполнится никогда. То есть "Камаз10" == "Камаз10" вернет false как и предыдущие и последующие сравнения.
У меня совершенно нет идей почему такое происходит. В прочих тестовых примерах, что я писал, вводя в текстовое поле что-то, затем засовывая это в переменные, переменные в функцию и все срабатывало, похожие сравнения работали корректно.
Что здесь может быть? Что мне сделать чтобы тут все заработало?