Javascript Python для ошибок синтаксиса цикла

#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 , что делает что-то другое.