这行代码比较了什么?



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]。获得此功能后,您只需像平常一样选择7myArray[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]相同)。

希望它能帮助您理解您在问题中发布的代码。

最新更新