javascript - 对如何在 Jquery 中使用 .not() 感到困惑
问题描述
我希望我能以一种有意义的方式解释这一点。
我有一个名为temp的数组。temp的值总是不同的,但这个数组总是只有 2 个元素。
例如:
temp[0] = 10
temp[1] = 14
值“10”和“14”表示不同数组中的索引,称为游戏板。并且游戏板索引中的值表示匹配的数字。
例如:
gameboard[10] = 3
gameboard[14] = 3
目标是为变量设置一个值:index1和index2
“temp”数组是通过遍历游戏板来填充的。所以index1可能是 temp[0] 或 temp[1]。每一回合都会有所不同。但最终,“index1”是针,“temp”是大海捞针。
例如:
var index_found = $.inArray(needle, temp);
这将返回0或1(在这种情况下,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;
}
我的意思是......显然,条件语句有效。但我觉得有一种更好/更有效/更专业的方式来写出来。我希望这是有道理的。>.<
解决方案
你的问题老实说有点令人困惑,但如果你的问题是如何使这段代码更优雅:
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(查找三元运算符以获取更多详细信息)。
推荐阅读
- php - 通过键名获取项目计数
- file-io - cypher/neo4j 中的文件 IO,或通过其他语言集成
- javascript - JavaScript:为 jquery ajax 重试添加延迟
- ruby-on-rails - Ruby 默认参数:静态还是动态?
- c# - 使用托管服务帐户将文件从 IIS 写入网络驱动器
- c# - 使用具有不同层的 LINQ 意味着我无法访问特定类型
- python - aws lambda 逐行读取并写入文件
- c++ - 使用 C++ 在 Active Directory GPO 中管理“安全设置”
- flutter - GridView中的颤振图像滚动滞后
- python - 如何指定来自 rest_framework.test.Client 的 Accept 标头?