Показать сообщение отдельно
  #4 (permalink)  
Старый 04.09.2012, 22:18
Интересующийся
Отправить личное сообщение для Forgotten Посмотреть профиль Найти все сообщения от Forgotten
 
Регистрация: 19.08.2012
Сообщений: 15

Ладно, постараюсь описать тот кусок, который не работает. Я сделал даже свой пример, но он работает. А в данном вычислительном скрипте не работает.

Итак, есть переменная 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 как и предыдущие и последующие сравнения.

У меня совершенно нет идей почему такое происходит. В прочих тестовых примерах, что я писал, вводя в текстовое поле что-то, затем засовывая это в переменные, переменные в функцию и все срабатывало, похожие сравнения работали корректно.

Что здесь может быть? Что мне сделать чтобы тут все заработало?
Ответить с цитированием