-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Как должен работать if #26
Comments
ОК, если пустая строка и 0 будут ложными, то это будет не похоже на то, как себя ведёт XSLT. |
Ну тут тонкий момент, да.
Ноды есть. Видимо ты хочешь привести ноду к строке (скаляру)? |
Ну мы же не хотим бездумно скопировать xslt. По факту, в твоём примере ноды |
Прошёлся по условиям в реальном проекте.
|
Мне кажется, что нужно в |
Ок. |
ОК. Итого, условия в |
Нет, я подумал и понял, что так плохо. if 42 > 0 {
...
} Там условие уже типа Вариант — если Например, данные такие: {
"foo": true,
"bar": false
} Шаблон: // Здесь .foo -- это boolean, приводим его к scalar.
if .foo {
}
// А здесь !(...) -- это boolean, значит выражение .foo тоже нужно приводить к boolean.
if !(.foo) {
} Т.е. в симметричных условиях мы приводим Отсюда вывод. Приводить условие нужно таки к |
function nodeset2boolean(nodeset) {
var node = nodeset[0];
if (!node) { return false; }
var data = node.data;
if (data instanceof Array) {
// Или вариант -- смотреть на первый элемент массива.
return (data.length > 0);
}
if (typeof data === 'object') {
// Или вариант -- смотреть, пустой ли объект или нет.
return true;
}
return !!data;
} Как-то так чтоль. |
В общем я переделал |
Да, так мне нравится :) |
Ладно, тогда я закрываю. |
для истории коммит 019de43 |
Хочется, писать условия проще, что бы они были ближе к JS-ным.
Сейчас только пустой массив и
undefined
считаются ложными условиями.Хочется, что бы пустая строка,
false
,0
,null
тоже считались ложными02.json
if.02.yate
Результат
The text was updated successfully, but these errors were encountered: