Tratando de iterar sobre una matriz para encontrar dos elementos de matriz cuya suma sea igual al objetivo, no estoy seguro de por qué no funciona  const numsArr = [2,7,11,15] const numTarget = 9 const twoSum = function (nums, ...

0
LorenzoDev 4 mar. 2021 a las 17:02

1 respuesta

La mejor respuesta

Siempre debe verificar si hay errores tipográficos: numTarget no es numsTarget; Además, break el bucle si se alcanza el resultado deseado. Prueba algo como:

const numsArr = [2, 7, 11, 15];

const sumFromTarget = (nums, target) => {
  let sum = 0;
  
  for (let i = 0; i <= nums.length; i += 1) {
    sum += nums[i];
    //  ^ add current value to sum
    if (sum === target) {
      console.log(nums.slice(0, i + 1).join(" + ") + " = " + target);
      break;
      // result is reached, no need for further processing
    } 
  }
  
  if (sum !== target) {
  //  ^ true if the loop is completed without result
    console.log(`Could not reach ${
      target} summing the consecutive values of the given array`);
  }
}

sumFromTarget(numsArr, 9);
sumFromTarget(numsArr, 17);
sumFromTarget(numsArr, 20);
0
KooiInc 4 mar. 2021 a las 14:21