JavaScript中的数组理解?

And*_*den 7 javascript python list-comprehension list

我想知道将列表理解转换为Javascript的最佳方法是什么(从Python).有什么能让这个可读而不是一团糟吗?

    non_zero_in_square = [ grid[row][col]
                           for row in range(start_row, start_row+3)
                           for col in range(start_col, start_col+3)
                           if grid[row][col] is not 0
                         ]
Run Code Online (Sandbox Code Playgroud)

这是列表理解的一个很好的例子,因为它有多个fors和a if.

我要补充的是,range位覆盖这里(我不能没有range).

Poi*_*nty 3

使用该方法执行此操作会有些混乱.map(),因为外部调用确实需要返回数组。因此,你可能最适合行人:

var nonZero = [];
for (var row = startRow; row < startRow + 3; ++row)
  for (var col = startCol; col < startCol + 3; ++col)
    if (grid[row][col] !== 0) nonZero.push(grid[row][col];
Run Code Online (Sandbox Code Playgroud)