Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите разложить (? :) на (if else) (https://javascript.ru/forum/misc/39862-pomogite-razlozhit-na-if-else.html)

FlyRey 15.07.2013 00:54

Помогите разложить (? :) на (if else)
 
Я пишу на js для программы Adobe After Effects и в одном скрипте понадобилось использовать библиотеку d3.js и при отладке ExtendScript Toolkit выдает ошибку "Expected: :" на втором "?" в строчках типа этой.
return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;

Хочу разложить на (if else), но не могу понять как. :help:

devote 15.07.2013 01:35

можно избавиться от ошибки добавив скобки:
return value == null ? (name.local ? attrNullNS : attrNull) : (typeof value === "function" ? (name.local ? attrFunctionNS : attrFunction) : (name.local ? attrConstantNS : attrConstant));

ну а если if/else
if (value == null) {
    if (name.local) {
        return attrNullNS;
    } else {
        return attrNull;
    }
} else if (typeof value === "function") {
    if (name.local) {
        return attrFunctionNS;
    } else {
        return attrFunction;
    }
} else if (name.local) {
    return attrConstantNS;
} else {
    return attrConstant;
}

FlyRey 15.07.2013 02:38

Спасибо! Со скобками помогло.


Часовой пояс GMT +3, время: 18:41.