Как разделить вложенный троичный оператор на нормальное условие if else

#javascript #if-statement #conditional-statements

#javascript #if-оператор #условные операторы

Вопрос:

Я пытался понять троичный оператор в нормальном условии if else.

 stateable =
data.length > 0
? data[0].list > data[0].somelist
? Product.ADDING
: Product.REMOVING
: Product.NOTHING
 

как понять это множественное вложенное условие

Комментарии:

1. кстати, как насчет одинаковой длины?

Ответ №1:

Это эквивалентно следующему:

 let stateable;
if (data.length === 0) {
    statable = Product.NOTHING;
} else if (data[0].list > data[0].somelist) {
    statable = Product.ADDING;
} else {
    statable = Product.REMOVING;
}
 

Подход с условным оператором можно было бы переработать, чтобы сделать его более читаемым, поставив сначала условие NOTHING , если вы хотите:

 const stateable = data.length === 0
    ? Product.NOTHING
    : data[0].list > data[0].somelist
        ? Product.ADDING
        : Product.REMOVING;