像[['a', 'aa'], ['b', 'bb'], ['c', 'cc']] 这样的东西实际上并不是一个二维数组,在 JavaScript 或 CoffeeScript 中没有这样的东西。这实际上是一个数组数组。所以如果你这样做:
array = [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
for value in array
#...
然后value 将是['a', 'aa']、['b', 'bb'],最后是循环体内的['c', 'cc']。那么你可以说:
array = [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
for value in array
someFunc(value[0], value[1])
或者您可以使用splat 自动解压缩value 数组:
array = [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
for value in array
someFunc(value...)
# ------------^^^
那个 splat 只是一个隐藏的 Function.prototype.apply 调用,相当于:
someFunc.apply(null, value)
如果您需要遍历value,那么您只需在其中抛出另一个循环:
array = [['a', 'aa'], ['b', 'bb'], ['c', 'cc']]
for value in array
for e in value
# do things with `e`, it will be 'a', 'aa', 'b', ...