Javascript 如何将嵌套三元运算符拆分为正常if-else条件

Javascript 如何将嵌套三元运算符拆分为正常if-else条件,javascript,if-statement,conditional-statements,Javascript,If Statement,Conditional Statements,我试图将三元运算符理解为正常的if-else条件 stateable = data.length > 0 ? data[0].list > data[0].somelist ? Product.ADDING : Product.REMOVING : Product.NOTHING 如何理解此多重嵌套条件它等效于以下内容: let stateable; if (data.length === 0) { statable = Product.NOTHING; } else if

我试图将三元运算符理解为正常的if-else条件

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

如何理解此多重嵌套条件

它等效于以下内容:

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;

顺便问一下,同样的长度呢?