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

140
Visualizações
los corchetes abiertos deben cerrarse en el orden correcto en javascript
s = ['[', ']', '{', '}', '(', ')']; copied = s; console.log(copied.length); var output; for (i = 0; i < s.length; i++) { console.log('calling function', i); different(); } function different() { if (copied[0] == '(' && copied[1] == ')') { copied.splice(0, 2); output = 'valid'; console.log('checking', copied); } else if (copied[0] == '{' && copied[1] == '}') { copied.splice(0, 2); output = 'valid'; } else if (copied[0] == '[' && copied[1] == ']') { copied.splice(0, 2); output = 'valid'; console.log('checking', copied); } else { output = 'invalid'; } } console.log(copied); console.log(copied.length); console.log('result is ', output);

estoy obteniendo el siguiente resultado

6

función de llamada 0

comprobación [ '{', '}', '(', ')' ]

función de llamada 1

[ '(', ')' ]

2

el resultado es valido

El problema es que el bucle se ejecuta solo dos veces, pero se supone que debe ejecutarse 6 veces.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Se corrigieron algunos problemas con el código. El principal es que la función different() del OP examina la misma parte de la matriz, sin importar el estado del bucle...

 const s = ['[', ']', '{', '}', '(', ')', '[', '***'] for (i = 0; i < s.length - 1; i += 2) { let result = different(s[i], s[i + 1]); console.log(result) } function different(a, b) { let match = (a === '(' && b === ')') || (a === '[' && b === ']') || (a === '{' && b === '}') return `"${a}" and "${b}" ${match ? '' : 'do not'} match` }

Un enfoque más escalable representaría la sintaxis en los datos, así...

 const s = ['[', ']', '{', '}', '(', ')', '[', '***'] const delimiters = { '[': ']', '(': ')', '{': '}', } for (i = 0; i < s.length - 1; i += 2) { let result = different(s[i], s[i + 1]); console.log(result) } function different(a, b) { let match = delimiters[a] === b; return `"${a}" and "${b}" ${match ? '' : 'do not'} match` }

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