Просмотр полной версии : string -> Boolean
Я не нашёл никакой функции типа parseXXX() для преобразования строки в булев тип. Boolean("xxx") тоже не работает.
Вопрос как преобразовать строку красиво, чтобы без if или ?:
спасибо
а спец функции видимо нет, потому что должна иметься возможность выбора значения по умолчанию, если строка = не "true"/"false", а "абракадабра" или undefined
Boolean(str) работает. null, пустая строка и undefined - это ложь.
Все остальное чистая правда.
boo = ( str && str != "false");
Спец. нету. Сами напишите.
Kikasso, я бы лучше проверял, если не true, то значит false, а у тебя false только если str равен false (строкой) или не существует.
__etc, для if-else подходит. Ну можно и добавить словечко:
function bool(str){ trace ( Boolean(str) && str != "false"); }
bool( s );
bool( "");
bool( "false" );
bool( false );
bool(0);
trace("------");
bool(true);
bool("1");
bool(1);
или
function bool(str){
trace (Boolean( str && str != "false"));
}
Boolean(str) работает. null, пустая строка и undefined - это ложь.
Все остальное чистая правда.
boo = ( str && str != "false");
upd: тут недоработка, см. ниже
Ты это все к чему написал? По-моему очевидно, что я имел ввиду под "Boolean(str) не работает".
И зачем писать вот такое????
boo = ( str && str != "false");
после того как _etc уже дал простой код
bool = (str=="true");
Зачем писать такое? Потому что давайте посмотрим:
function bool(str){
trace( str == "true" );
}
bool( s );
bool( "");
bool( "false" );
bool( false );
bool(0);
trace("------");
bool("true");
bool(true);
bool("1");
bool(1);
Потом запустите проверку из моего последнего поста.Boolean(str) не работает
Работает, только не так, как вы ожидали:
http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001720.html
Kikasso, для начала нужно было проверять лишь строковые значения. Ну и потом, как правило, если строка "true", то это true, а все остальное — false. Это и было, я так понимаю, условием задачи.
Kikasso, считаешь на название темы внимание обращать не стоит?
это я про
bool(0);
bool(true);
когда даешь подобные листинги, хорошим тоном является в комментариях к строке писать что выдает на нее trace.
Работает, только не так, как вы ожидали:
http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001720.html
Похоже все-таки не очевидно, что я имел ввиду ))
Возможно стоит также подумать, об предварительном переводе строки в нижний регистр. Потому как "True" == "true", именно потому, что это строка.
Откуда берутся эти строковые значения, интересно? Наверняка приходят с сервера. Что правильнее передавать, "1" или "true"? Разница в 3 байта.
И "" или "false" - 5 байт сэкономлено.
Я бы еще сравнивал с "0", сейчас это не обрабатывается.
Похоже все-таки не очевидно, что я имел ввиду ))
Ну так сформулируйте, в конце концов.
Насчет листингов, так copy-paste и посмотреть.
iNils, хорошее замечание.
bool = (str.toLowerCase()=='true');
Kikasso, не нужно решать иную задачу.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.