Por favor, ¿cuál es el equivalente en javascript de este código python?
guessed_index = [ i for i, letter in enumerate(self.chosen_word) if letter == self.guess ]Tanto enumerar como enumerar la comprensión no están presentes en el equivalente de ES6, cómo combino ambas ideas en una sola
Centrarse en la parte iterable/ enumerate de su pregunta en lugar de la tarea específica que está realizando: puede implementar un análogo de JavaScript de la enumerate de Python usando una función de generador y consumir el generador resultante (que es un superconjunto de un iterable) a través for-of (o manualmente si lo prefiere):
function* enumerate(it, start = 0) { let index = start; for (const value of it) { yield [value, index++]; } } const word = "hello"; const guess = "l"; const guessed_indexes = []; for (const [value, index] of enumerate(word)) { if (value === guess) { guessed_indexes.push(index); } } console.log(`guessed_indexes for '${guess}' in '${word}':`, guessed_indexes);O puede escribir una función generadora específica que haga la tarea de encontrar coincidencias:
function* matchingIndexes(word, guess) { let index = 0; for (const letter of word) { if (letter === guess) { yield index; } ++index; } } const word = "hello"; const guess = "l"; const guessed_indexes = [...matchingIndexes(word, guess)]; console.log(`guessed_indexes for '${guess}' in '${word}':`, guessed_indexes);Solo para mayor claridad para los lectores potenciales que no dominan python, a continuación se muestra el bucle de python equivalente a su comprensión:
guessed_index = [] i = 0 for letter in self.chosen_word: if letter == self.guess: guessed_index.append(i) i += 1