Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

209
Visualizações
¿Cómo realizo funciones de copia de seguridad de resultados de funciones para reiterar las funciones nuevamente?

Tengo una matriz que se pasa a través de un bucle forEach. A continuación, se pasa cada elemento y se comprueba si tiene un orden o caracteres específicos. Si es cierto que los caracteres deben eliminarse de la cadena, entonces se supone que debe volver a repetirse con la nueva cadena. (Cadena antigua menos los caracteres marcados)

Mi problema es el hecho de que todas las funciones todavía contienen localmente la cadena anterior (antes de que se eliminaran los caracteres). ¿Cómo puedo pasar la nueva cadena a las funciones sin restablecer el valor que tiene actualmente "deleteStringData"?

 let dnaArray = ["ACATATAGACATACGT","AAAAAATACATAGTAGTCGGGTAG","ATACATCGGGTAGCGT"]; dnaStrand = ""; //SORT THROUGH EACH ITEM IN ARRAY dnaArray.forEach((dnaStrand, index) => { if (findDna(dnaStrand)) { console.log("Case #" + index + " " + dnaStrand + ": YES"); } else { console.log("Case #" + index + " " + dnaStrand + ": NO"); }; }); function findDna(dnaStrand){ if (findHead(dnaStrand)){ if(findBody(dnaStrand)){ console.log("dna"); return true; } } else { return false; } }; function findHead(dnaStrand){ if (findGlobe(dnaStrand)){ if (findEyeSpots(dnaStrand)) { return true; } } else{ return false; } }; function findBody(dnaStrand){ if (findGlobe(dnaStrand) && findLegs(dnaStrand)) { return true; } else { return false; } }; function findGlobe(dnaStrand){ if(findMatch(dnaStrand, /(A+(TAC|CAT)A)/)){ return true; }else{ console.log("No Globe"); } }; function findEyeSpots(dnaStrand){ if(findMatch(dnaStrand, /T(CG*T)*AG/)){ return true; }else{ console.log("No Eyes"); } }; function findLegs(dnaStrand){ if(findMatch(dnaStrand, /CG*T/)){ return true; }else{ console.log("No Legs"); } }; function findMatch (dnaStrand, regex) { dnaStrand = String(dnaStrand); let isMatch = dnaStrand.match(regex); isMatch = String(isMatch[0]); //console.log(isMatch); if (isMatch) { deleteStringData(dnaStrand, isMatch); return true; } else { return false; } }; function deleteStringData (dnaStrand, string) { dnaStrand = dnaStrand.replace(string, ""); };
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Lo siento, pero estoy un poco ocupado y no tengo tiempo para leer todo su código. En base a su pregunta, puedo darle una guía básica.

asegúrese de que su función tome un parámetro. Si cada vez que el resultado final no es satisfactorio o simplemente desea repetirlo nuevamente, haga una declaración if, y si va a repetirlo, haga yourFunction(endresult) adentro. Si le preocupa el retraso, considere convertir su resultado final en una variable global y establecer un setTimeout para su función.

about 4 years ago · Juan Pablo Isaza Relatório

0

Si declara las funciones de prueba dentro del ciclo, puede actuar en una sola instancia del hilo en ese ámbito sin necesidad de pasar ninguna referencia.

También puede usar Promesas para encadenar las pruebas.

Este puede no ser el método más eficiente, pero es muy legible.

 (async () => { const strands = [ 'ACATATAGACATACGT', 'AAAAAATACATAGTAGTCGGGTAG', 'ATACATCGGGTAGCGT' ]; const results = []; async function analyze(strand, index) { let result = { 'case' : parseInt(index), strand }; function findMatch(pattern) { return new Promise((resolve, reject) => { let m = strand.match(pattern)[0]; if (m) { strand = strand.replace(m, ''); resolve(true); } else { reject(); } }); } function findHead() { return findGlobe().then(findEyes); } function findBody() { return findGlobe().then(findLegs); } function findGlobe() { return findMatch(/(A+(TAC|CAT)A)/); } async function findEyes() { result.eyes = await findMatch(/T(CG*T)*AG/); } async function findLegs() { result.legs = await findMatch(/CG*T/); } function found() { result.dna = true; } function failed() { result.dna = false; } function done() { results.push(result); } await Promise.all([ findHead(), findBody() ]).then(found) .catch(failed) .finally(done); } for (let i in strands) { await analyze(strands[i], i); } console.log(results); })();

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda