Массивное понимание в JavaScript?

Мне было интересно, что самым простым способом было бы преобразовать (из Python) понимание списка в Javascript. Есть ли что-нибудь, что сделает это читаемым, а не беспорядок?

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 ] 

Это довольно хороший пример понимания списка, поскольку он имеет несколько for s и и if .

Я должен добавить, что бит range покрыт здесь (я не могу жить без range ).

3 Solutions collect form web for “Массивное понимание в JavaScript?”

Ну, было бы довольно грязно делать это с помощью метода .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]; 

Кофейный скрипт поддерживает синтаксис понимания списка и, вероятно, самый аккуратный, поскольку он точно соответствует синтаксису. К сожалению, это посредник и будет скомпилирован для многострочного javascript

http://coffeescript.org/#loops

Они показывают вам, как он маскируется на ванильный javascript.

Документация Mozilla JS, ES 1.7 поддерживает их изначально .

Пример:

 var numbers = [1, 2, 3, 4]; var doubled = [i * 2 for (i of numbers)]; 
  • Найти координаты кубоида, используя понимание списка в Python
  • Учет списка, проверьте, уникален ли элемент
  • Как удалить список слов из списка строк
  • Python - понимание слов для слов, которые состоят не только из цифр
  • Понимание Python-списка в Java
  • Список понятий и условий?
  • Используя понимание списков в Python, чтобы сделать что-то похожее на zip ()?
  • Элегантный способ получить hashtags из строки в Python?
  • Python - лучший язык программирования в мире.