对如何在Jquery中使用.not()感到困惑

时间:2018-07-13 19:13:25

标签: javascript

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

我有一个名为 temp 的数组。 temp的值将始终不同,但是此数组将始终只有两个元素

例如:

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

值“ 10”和“ 14”代​​表称为游戏板的另一个数组中的索引。游戏板索引中的值表示匹配的数字。

例如:

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

目标是获取变量值: index1 index2

通过在游戏板上循环来填充“临时”数组。因此 index1 可能是temp [0]或temp [1]。每转都会有所不同。但最终,“ index1”是关键,而“ temp”是大海捞针。

例如:

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

这将返回 0 1 (在这种情况下,0并不意味着错误)

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;
}

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

1 个答案:

答案 0 :(得分:0)

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

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(查找三元运算符以获取更多详细信息)。