#javascript #python #loops
#javascript #python #циклы
Вопрос:
Как работает цикл for в Javascript? У меня есть пара фрагментов кода Python, которые я хочу преобразовать в JS для запуска в Интернете, но всегда получаю синтаксические ошибки.
final_words = [i.split()[-1] for i in chosen_stimuli]
Я преобразовал в JS как
final_words = [i.split().slice(-1)[0] in chosen_stimuli]
Второй код Python, который у меня есть, это
for word in final_words:
if word in ''.join(textbox.text).lower():
matched_words.append(word)
Я перевел на JS как
for (word in final_words){
if word in ''.join(textbox.text).toLowerCase(){
matched_words.push(word)}
}
Комментарии:
1.
.toLowerCase()
для преобразования строки в нижний регистр. Однако непонятно, что вы пытаетесь с''.join(textbox.text)
этим сделать2. Ваше преобразование «JS» не работает. В JS нет понимания списков.
3. transcrypt можно использовать для преобразования Python в JavaScript (для запуска его в веб-браузере)
Ответ №1:
Вы не можете просто преобразовать python в javascript, просто добавляя скобки и фигурные скобки случайным образом. Речь идет о фактической концепции кода. Ваш фрагмент:
final_words = [i.split()[-1] for i in chosen_stimuli]
Использует понимание списка для отображения функции в списке. Итак, используйте map
в js:
let final_words = chosen_stimuli.map(i => i.split(/s /).slice(-1)[0]);
Ваш второй код:
for word in final_words:
if word in ''.join(textbox.text).lower():
matched_words.append(word)
Перебирает список, проверяет, содержит ли строка слово, и, если оно содержит, добавляет его в массив. Итак, сделайте так:
for (let word of final_words) {
if (textbox.text.join("").toLowerCase().contains(word)) {
matched_words.push(word);
}
}
Обратите внимание, что JS использует for...of
для перебора массивов, а не for...in
, что делает что-то другое.