jQuery 中的 If-less 1 或 0 分辨率

发布于 2024-11-19 06:16:50 字数 153 浏览 3 评论 0原文

我希望将 160 以外的任何数字解析为 1,将 160 解析为 0。160 必须解析为正好 1,不多也不少。有人知道该怎么做吗?我不想使用 if 或 else,但我可以使用模数和 math.abs。谢谢。

澄清:没有三元运算符,我正在寻找更多的数学运算,或者类似的巧妙的东西。

I wish to make any number other than 160 resolve to 1, and 160 resolve to 0. 160 must resolve to exactly 1, no more, no less. Does anybody know how to do this? I don't want to use an if or else, but I'm fine with using modulus and math.abs. Thanks.

CLARIFICATION: no ternary operators, I'm looking for more of a mathematical operation, or something ingenuitive like that.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鼻尖触碰 2024-11-26 06:16:50

(注意,这是在编辑之前)

三元运算符(既不是 if 也不是 else ;)):

var value = number === 160 ? 0 : 1;

仍然不是数学,而是类型转换

var value = +(number !== 160);

仍然不是数学,而是布尔运算符

var value = (number !== 160) && 1 || 0;

一点点数学和类型转换

var value = +(!!(160 - number)); // outer brackets can probably be omitted

也许我应该现在停止;)

(Note, this was before the edit)

Ternary operator (it's neither if nor else ;)):

var value = number === 160 ? 0 : 1;

Still not math but type conversion:

var value = +(number !== 160);

Still not math but boolean operators:

var value = (number !== 160) && 1 || 0;

A little bit math and type conversion:

var value = +(!!(160 - number)); // outer brackets can probably be omitted

maybe I should stop now ;)

千里故人稀 2024-11-26 06:16:50

虽然不是严格的数学运算,但您可以使用 javascript Math 对象的函数 maxmin 来执行此操作。

要让 n 解析为 1(表示 160),否则解析为 0,您可以使用:

var r = Math.abs(Math.max(-1, Math.min(1, n - 160))) ;

如果您希望 1 和 0 颠倒,您可以执行以下操作:

var r1 = Math.abs(r - 1) ;

While not strictly mathematical operations, you can use the javascript Math object's functions max and min to do this.

To get n to resolve to 1 for 160, and 0 otherwise, you can use:

var r = Math.abs(Math.max(-1, Math.min(1, n - 160))) ;

If you want the 1 and 0 reversed, you can do:

var r1 = Math.abs(r - 1) ;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文