Это может быть полезно, если вы разделите свою троицу на отдельные части.По сути, он имеет такой базовый состав:
condition ? a : b
Здесь a
будет выполняться, если condition
оценивается как true
, и b
будет запускаться, если оно оценивается как false
.
Итак, заключение в скобки вокруг ваших отдельных троичных операторов может помочь разобраться.
return e = this.checked ? (i - n > 0 ? 0 : (i - n < 10 ? 10 : i - n)) : (i - n < 0 ? 10 : (i - n > 10 ? 0 : 10 + i - n))
Так что здесь:
condition
is this.checked
a
is (i - n > 0 ? 0 : (i - n < 10 ? 10 : i - n))
b
is (i - n < 0 ? 10 : (i - n > 10 ? 0 : 10 + i - n))
Или, возможно, вам будет проще понять, если вы преобразуете его в выражение if, например:
if (this.checked) {
if (i - n > 0) {
return 0
} else {
if (i - n < 10) {
return 10;
} else {
return i - n;
}
}
} else {
if (i - n < 0) {
return 10;
} else {
if (i - n > 10) {
return 0;
} else {
return 10 + i - n;
}
}
}