Для калькулятора, который я создаю, у меня есть массив с операторами, в котором мне нужно знать, появляется ли знак времени до или после знака деления. для этого я имел следующий код (используя inArray JQuery в):Как определить, какое значение имеет меньший индекс в массиве
if ($.inArray('*', operators) < $.inArray(':', operators)) {
//Multiplication is before division so perform mulitplication
}
else {
//Division is before multiplication so perform division
}
Теперь этот код выполняется в цикле, и каждый раз, когда он снимает оператор он нашел из массива. Это означает, что в какой-то момент могут быть только умножения в массиве и без делений. В случае, когда функция inArray вернется, например, для умножения, и -1 для деления. Что вы получаете:
if (3 < -1) ---> false
Поэтому он считает, что нашел знак разделения, где его нет.
Он также должен работать, когда это наоборот: нет mulitplication, а только разделение (ы).
Я не могу найти решения, чтобы исправить это, так что это привело меня сюда.
Это будет оценивать ложь, потому что, когда нет никакого разделения '$ .inArray («:», операторы)! = -1' будет ложным, так что все будет ложным. – Creator13
Спасибо, я изменил логику. – Barmar