如何编写 if/else 函数简写?

问题描述 投票:0回答:2

例如,我有一个 var

a
。如果
a
为 1,我想使用一个函数,如果 a 是其他值,我想使用另一个函数而不重用一堆代码。这是我现在有的类似的东西:

if (a == 1) {
  return this.data.some((c) => {...});
} else {
  return this.data.every((c) => {...});
}

每个省略号中都有相同的数据,我不想再次重复。有没有什么捷径可以根据

some
every
换成
if (a == 1)

我尝试了正则三元表达式,但语法对于函数不正确,仅对于变量不正确。

typescript conditional-statements
2个回答
0
投票

您可以在上面定义匿名函数,然后在三元中使用它。

const myFunc = (c) => { ... };
return a == 0 ? this.data.some(myFunc) : this.data.every(myFunc);

从技术上讲,没有什么可以阻止您使用两个相同的匿名函数创建三元,也许您在尝试时遇到了另一个问题?这应该有效:

return a == 0 ? this.data.some((c) => { ... }) : this.data.every((c) => { ... })

0
投票

你可以这样做:

const someOrEvery = (a == 1 ? [].some : [].every);

return bar.call(this.data, (c) => {...});

使用

call
,您可以根据上面的三元组将参数传递给
some()
every()

© www.soinside.com 2019 - 2024. All rights reserved.