ops[i] 和 [calc[j]] 之间的空格是什么意思?比较什么。
if (ops[i][calc[j]]) {
currentOp = ops[i][calc[j]];
在这种情况下,不会比较该值,只是检查它是否为 true。
例如,这些值为 true-ish:
"hello"
1
234
{}
true
(当然)
相反,这些值不是:
0
null
false
(当然)undefined
因此,如果您这样做:
if (true) { console.log('This code will be run') }
if (234) { console.log('This one too!') }
if (0) { console.log('But this one won't') }
知道一个值是否为真值的一个好方法是在它前面加上一个双!
:
console.log(!!0) // -> false
console.log(!!'hello') // -> true
它之所以有效!
因为该值反转:如果它是一个真实的值,它会将其转换为实际的false
,反之亦然。而且,如果你把某件事颠倒两次,你就会得到你首先拥有的东西。
现在,被检查为true的值位于2D数组中,就像@user1767754所说的那样。看看这个:
const myArray = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
如何访问7
?首先,你得到它的包含数组,这是第二个:myArray[1]
。获得此功能后,您只需像平常一样选择7
:myArray[1][2]
.
您可以将其视为表格。首先,选择行 (1
),然后选择列 (2
)。
但是你可以制作3D阵列,4D阵列,它是无限的。
但是,如果值2
位于另一个数组中,称为indices
,如下所示:
const indices = [1, 2, 3, 4]
好吧,您可以myArray[1][indices[1]]
访问7
。
然后,括号之间的空格无关紧要(something[1] [2]
与something[1][2]
相同)。
希望它能帮助您理解您在问题中发布的代码。