Javascript 滤波函数中一行多个三值运算符

Javascript 滤波函数中一行多个三值运算符,javascript,ecmascript-6,Javascript,Ecmascript 6,上面的逻辑将增加一个obj.key,在obj.key上等于'All',但我有另一个条件,就是减去另一个键。我很好奇如何构造双三元运算符。一般来说,每个条件构造如下: let result = myList.map(obj => { return({ "count": obj.key === data.type || obj.key === 'All' ? obj.count-1 : obj.count, "name": obj.name }) }) 你可以这样写:

上面的逻辑将增加一个
obj.key
,在
obj.key
上等于
'All'
,但我有另一个条件,就是减去另一个键。我很好奇如何构造双三元运算符。

一般来说,每个条件构造如下:

let result = myList.map(obj => {
  return({
    "count": obj.key === data.type || obj.key === 'All' ? obj.count-1 : obj.count,
    "name": obj.name
  })
})
你可以这样写:

if (condition1) {
  a = 1;
} else if (condition2) {
  a = 2;
} else if (condition3) {
  a = 3;
} else {
  a = null;
}

一般来说,每个条件构造如下所示:

let result = myList.map(obj => {
  return({
    "count": obj.key === data.type || obj.key === 'All' ? obj.count-1 : obj.count,
    "name": obj.name
  })
})
你可以这样写:

if (condition1) {
  a = 1;
} else if (condition2) {
  a = 2;
} else if (condition3) {
  a = 3;
} else {
  a = null;
}

也许你可以添加一个没有三元的例子来说明你想要什么。你说上面的逻辑增加了一些东西,但没有增加任何东西。您想要一个带有三元运算符的“if-elseif-else”?只需声明一个变量,逐行构建该变量的返回值,然后返回该变量。没有理由在一条直线上对所有条件进行积分。您可以使用三元运算符链接多个条件,例如:a>b?“a更大”:ab?“a更大”:a