Soy nuevo en la programación.
No sé por qué la función se repite dos veces.
Supongo que esto está sucediendo porque la declaración de devolución todavía se está realizando for (let post of posts) comience nuevamente / ejecute nuevamente. Quiero que la función contenedora se detenga tan pronto como el retorno esté presente dentro de la función secundaria.
¿Puede alguien ayudarme a entender por qué está sucediendo y cómo puedo detener este bucle?
const getPosts = () => { console.log('current location', window.location.href); for (let post of posts) { console.log('.....for loop starts here'); switch (post.matchType) { case 'contains': console.log('contains'); if ( currentUrl .toLowerCase() .toLowerCase() .includes(post.url.toLowerCase()) ) { for (let item of workingArray) if (item === post._id) { console.log( '.....................oops item already seen' ); setVisibility(false); return; } setVisibility(true); setActivePosts(post); return post; } break; case 'equals': console.log('equals'); if (currentUrl.toLowerCase() === post.url.toLowerCase()) { for (let item of workingArray) if (item === post._id) { console.log( '.....................oops item already seen' ); setVisibility(false); return; } setVisibility(true); setActivePosts(post); return post; } break; } current location http://localhost:8080/ .....for loop starts here equals current location http://localhost:8080/ .....for loop starts here equalsEstoy llamando a getPosts() en el render así...
return ( <Simplecomponent posts={getPosts()} /> </div> </div> </div>