首页 > 解决方案 > 对如何在 Jquery 中使用 .not() 感到困惑

问题描述

我希望我能以一种有意义的方式解释这一点。

我有一个名为temp的数组。temp的值总是不同的,但这个数组总是只有 2 个元素

例如:

temp[0] = 10
temp[1] = 14

值“10”和“14”表示不同数组中的索引,称为游戏板。并且游戏板索引中的值表示匹配的数字。

例如:

gameboard[10] = 3
gameboard[14] = 3

目标是为变量设置一个值:index1index2

“temp”数组是通过遍历游戏板来填充的。所以index1可能是 temp[0] 或 temp[1]。每一回合都会有所不同。但最终,“index1”是针,“temp”是大海捞针。

例如:

var index_found = $.inArray(needle, temp);

这将返回01(在这种情况下,0 并不意味着 false)

0 = temp[0] 
1 = temp[1]

这就是我遇到的麻烦: 我需要一种方式来表示“不”索引。

如果“inArray”返回 1,我实际上想要值 0。

如果“inArray”返回 0,我实际上想要值 1。

所以,如果我把它放在一个条件语句中,它看起来像这样:

if (index_found == 1) {
    index2 = 0;
} else if (index_found == 0) {
    index2 = 1;
}

我的意思是......显然,条件语句有效。但我觉得有一种更好/更有效/更专业的方式来写出来。我希望这是有道理的。>.<

标签: javascript

解决方案


你的问题老实说有点令人困惑,但如果你的问题是如何使这段代码更优雅:

if (index_found == 1) {
    index2 = 0;
} else if (index_found == 0) {
    index2 = 1;
}

您可以将其替换为:

index2 = 1 - index_found;

如果index_found为 1,则结果为 0,如果index_found为 0,则结​​果为 1。

你也可以这样做:

index2 = index_found === 1 ? 0 : 1;

这只是说如果index_found是 1,则将值设置为 0,否则设置为 1(查找三元运算符以获取更多详细信息)。


推荐阅读