Для языка python на языке javascript

У меня есть эта строка в python для понимания списка, однако я не очень понимаю этот язык, и я хотел преобразовать его в javascript.

строка:

next = [ (i,j) for i,j in getValidMoves(grid,x,y,moves) ]
num = [ (len(getValidMoves(grid,x+i,y+j,moves)),i,j) for i,j in next]

getValidMoves — вспомогательная функция, но я думаю, что в ней нет необходимости разбираться в остальном коде.

вы хотите, чтобы кто-то объяснил, что делают эти строки, или вы хотите, чтобы кто-то перевел строки в javascript?

Charalamm 12.12.2020 03:06

Я более-менее понимаю как это работает, хотел в джаваскрипте понять как работает даже форс

Trade Portugal 12.12.2020 03:08

помогло бы, если бы я подробно объяснил, не используя javascript? я не знаю джаваскрипт

Charalamm 12.12.2020 03:10

да, помогло

Trade Portugal 12.12.2020 03:13

ты понял мой ответ?

Charalamm 12.12.2020 03:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
97
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

3 вещи, которые могут помочь вам преобразовать это в Javascript:

  • Проверьте документы для списков понимания. Это прекрасно показывает, как вы можете преобразовать это в обычные циклы for...in.
  • Обновлено: в JavaScript эквивалентом цикла Python for...in будет цикл for...of. Цикл for...in в JavaScript делает что-то другое. (Это JavaScript, поэтому for (var i = 0; ...; ++i) ... тоже можно использовать.)
  • for i, j in ... в Python называется «распаковкой»; эквивалентно «Присвоение деструктуризации» в JavaScript.

Цикл for-each в Javascript использует of, а не in. for-in Javascript делает что-то другое и почти всегда является неправильным инструментом для любой работы, в которой он используется.

user2357112 12.12.2020 03:56
Ответ принят как подходящий

Начнем с того, как работает цикл for в python:

В отличие от многих языков, python фактически берет каждый элемент, содержащийся в любом итерируемом объекте, который вы указываете в операторе цикла foor, и выполняет итерацию по этому объекту без какого-либо приращения. Итак, в python следующий код не является бесконечным циклом.

for i in range(5):
    i=3
    print(i)
## prints 3, five times

Все это дает возможность циклу for повторять итерацию, как показано ниже.

for i in ['hsusu', 4, ['usjs'], '21']:
    print(i)
## prints each one of the list elements

Теперь цикл for внутри понимания списка — это то же самое, что и обычный цикл for. Однако понимание списка - это быстрый способ создания списков из итерируемых объектов, поскольку он использует эффективность функции добавления. В следующем примере с обычным многострочным циклом for вы используете добавление 5 раз для создания списка.

next = [] # an empty list
for i, j in getValidMoves(grid,x,y,moves): # iterate through the iterable
    next.append((i,j)) # append the desired element

Напротив, понимание списка не вызывает функцию добавления (или, по крайней мере, не так сильно. Я не уверен), поэтому итерация завершается быстрее.

О next = [ (i,j) for i,j in getValidMoves(grid,x,y,moves)] Эта строка создает список из-за квадратных скобок с именем next, из-за имени переменной, содержащей кортежи, из-за обычных скобок (i,j), из содержимого вывода функции getValidMoves(grid,x,y,moves), который должен быть итерируемым (иначе будет ошибка). Теперь, поскольку вы используете две переменные в цикле for, итерируемый должен быть чем-то вроде [[1,2],[7,8]], где каждый elemen6 итерируемого является итерируемым с 2 элементами.

Я надеюсь, что теперь вы все поняли, а если нет, скажите в комментариях, что мне лучше объяснить. Я скоро добавлю ссылки на все, что я написал.

Другие вопросы по теме