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());Debe realizar los siguientes cambios en su código. Debería solucionar tu problema.
while (nums === Number)i + k == target con nums[i] + nums[k] == target . Como i y k son índices, no valores reales en la matrizconsole.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();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
xyx e y coincide con target , entonces console.logNOTAS
target de 4 , el código imprime 2 2 .