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

221
Visualizações
La variable de JavaScript devuelve indefinido en todas las declaraciones y bucles

Estoy tratando de hacer la pregunta básica twoSum de leetcode. Mi matriz nums vuelve como indefinida a lo largo de esta función, y estoy totalmente perdido en cuanto a por qué. Estoy seguro de que es obvio, pero estoy teniendo dificultades incluso para solucionarlo, porque no importa dónde coloque los registros de la consola en esta función, siempre dice que nums no está definido.

 const nums = [2, 7, 11, 15]; const target = 9; function twoSum() { if (nums.length > 0) { while (nums === Number) { for (let i = 0; i < nums; i++) { for (let k = 0; k < nums; k++) { if (i + k == target) { console.log([i, k]); } else { console.log("no result"); } } } } } else { console.log("Array is Empty"); } }; console.log(twoSum());
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Debe realizar los siguientes cambios en su código. Debería solucionar tu problema.

  • No es necesaria la condición while (nums === Number)
  • reemplace i + k == target con nums[i] + nums[k] == target . Como i y k son índices, no valores reales en la matriz
  • No use console.log("no result"); en otra condición. En su lugar, cree una bandera y verifique si es falsa, luego haga console.log De lo contrario, console.log cada vez que nums[i] + nums[k] !== target .

 const nums = [2, 7, 11, 15]; const target = 9; let flag = false; function twoSum() { if (nums.length > 0) { for (let i = 0; i < nums.length -1; i++) { for (let k = 1; k < nums.length; k++) { if (nums[i] + nums[k] == target) { flag = true; console.log('indexes', [i, k], 'values', [nums[i], nums[k]]); } } } if (!flag) { console.log("No Result") } } else { console.log("Array is Empty"); } } twoSum();

about 4 years ago · Juan Pablo Isaza Relatório

0

Objetivo asumido

Dada una matriz de enteros y un target , busque cualquier par de enteros en la matriz cuya suma coincida con el target .

Fragmento de código

 const nums = [2, 7, 11, 15]; const target = 9; const twoSum = (tgt = target, arr = nums) => ( arr.forEach(x => arr.forEach(y => x + y === tgt && console.log(x, y) ) ) ); console.log('target = 9'); twoSum(); console.log('target = 4'); twoSum(4); console.log('target = 30'); twoSum(30); console.log('target = 55'); twoSum(100) || console.log('no matches');

Explicación

  • Iterar a través de la matriz con cada elemento tomado como x
  • Ahora, iterar de nuevo con cada elemento tomado como y
  • Si la suma de x e y coincide con target , entonces console.log

NOTAS

  • Como se ve en los casos de prueba, los mismos números pueden considerarse dos veces. Entonces, para target de 4 , el código imprime 2 2 .
  • Esto puede evitarse cambiando los límites de los bucles exterior e interior.
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