我希望我可以用一种有意义的方式来解释这一点。
我有一个名为 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>
答案 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(查找三元运算符以获取更多详细信息)。