2015-09-24 3 views
0

Я пытаюсь нарисовать связи между узлами станции в Canvas. Если я придерживаюсь той же схемы для имен станций («A», «B» и т. Д.), Нет проблем: https://jsfiddle.net/3k4L2ky0/Странное поведение строк в холсте/JS

Но если я использую как однобуквенные строки с многобуквенными (например, «A ',' B ',' C ',' Airport ',' Central '), Javascript, кажется, обрабатывает первую букву более длинных строк как эквивалентную более коротким: например == 'Аэропорт' 'A': https://jsfiddle.net/w6n0p04w/

Очевидно, что проблема заключается в функции здесь:

function lookUp(sta) { 
    for (n=0; n < station.length; n++){ 
    if (sta == station[n][0]) { 
    return n; 
    break; 
    } 
    } 
} 

Что я должен изменить? Разве «А» и «Аэропорт» не отличаются друг от друга?

+0

Вы пытались использовать '' === вместо того, чтобы просто '' ==? –

+0

Yup. Ничего не меняет. – Tyler330

+0

Первый скрипт должен быть: https://jsfiddle.net/3k4L2ky0/1/ – Tyler330

ответ

1

Проблема не есть lookUp.

Проблема заключается в том вы передаете первый символ lookUp здесь:

var stat = lookUp(startStat[0]);.

Просто измените это на следующее, и оно будет работать должным образом.

var stat = lookUp(startStat);

См: https://jsfiddle.net/w6n0p04w/2/

+0

Конечно! Спасибо за это - я явно смотрел на нее слишком долго. Хорошо поймал. – Tyler330

Смежные вопросы