Ошибка JavaScript в операторе if / else при расчете длины строки - PullRequest
0 голосов
/ 10 февраля 2012

Я получаю некоторые странные результаты для сценария, для которого пишу приложение для пишущей машинки.так же, как при использовании пишущей машинки, есть только так много символов, которые вы можете напечатать в одной строке, прежде чем вам нужно нажать RETURN.Я пытаюсь определить, сколько букв (фиксированной ширины) было набрано, и сравнить это число с переменной длиной строки (переменной, потому что, как и при использовании пишущей машинки, вы можете не начинать печатать на крайнем левом поле).

Вот мои глобальные переменные:

var charLine = "Hello world"; // what has been typed
var paperWidth = 900; // width of "paper" in the typewriter
var strikePosition = 488; // where the type strikes the paper (known value, the center of the typewriter)
var charWidth = 44; // width of each character

Вот как я определяю положение strikePosition относительно того, как бумага помещается в пишущую машинку, а затем использую ее для определенияКоличество пикселей, которое осталось.

var positionDifference = function (paperPosition){
    return strikePosition - paperPosition;
};
var remainingPixels = function (positionDifference) {
    return paperWidth - positionDifference;  
};

remainingPixels (20);

Все выше работает отлично.Так что вот где вещи начинают становиться странными.Основываясь на оставшихся пикселях, я считаю количество напечатанных символов и умножаю их на их ширину:

var charCount = function (){ 
    return charLine.length * charWidth;
};
charCount();

Затем ... Я проверяю, нужен ли «ВОЗВРАТ».Учитывая текущие параметры, это должно вернуть false, но это возвращает true.

var charCheck = function () {
    if (charCount <= remainingPixels){
        return false;
    }
    else {
        return true;
    }
};

charCheck();

Я что-то упустил?

1 Ответ

0 голосов
/ 10 февраля 2012

charCount - это функция. Так что вы должны выполнить его в if.

var charCheck = function () {
    if (charCount() <= remainingPixels()){
        return false;
    }
    else {
        return true;
    }
};

charCheck();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...