DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Advent.js🎅🏼| #6: Rematando los examenes finales

Rematando los examenes finales

Antes de poder disfrutar de la navidad... nos toca terminar de rematar los exámenes finales. ¡Y toca un poco de matemáticas! 😱

A una función se le pasan dos parámetros: un Array con números y el resultado que se espera.

La función debe devolver los dos valores del Array que sumen el resultado esperado. Como a veces pueden haber más de dos valores que sumen, se devolverá el primero empezando por la izquierda que encuentre otro par, sin importar lo lejos que esté a la derecha.

Si no se encuentra, se devuelve null.

Veamos unos ejemplos:

sumPairs([3, 5, 7, 2], 10) // [3, 7]
sumPairs([-3, -2, 7, -5], 10) // null
sumPairs([2, 2, 3, 1], 4) // [2, 2]
sumPairs([6, 7, 1, 2], 8) // [6, 2]
sumPairs([0, 2, 2, 3, -1, 1, 5], 6) // [1, 5]
Enter fullscreen mode Exit fullscreen mode

El resultado tiene que ser un array con dos números.

Una vez que tengas el resultado... ¿cómo podrías hacer que fuese lo más óptimo posible para no tener que recorrer las mismas situaciones dos veces 🤔?

Completa el reto!


Mi solución:


Puedes seguir a @midudev y estar pendiente de los retos de Advent.js

Discussion (3)

Collapse
scabinimelina profile image
Scabini Melina

export default function sumPairs(numbers, result) {
for(let i=0; i<numbers.length; i++ ){
for(let j=i+1; j<numbers.length; j++ ){
if(numbers[i]+numbers[j]==result){
return [numbers[i],numbers[j]]
}
}
}
return null
}

Collapse
darkthemecoder profile image
BlackBarto

function sumPairs(numbers, result) {
// ¡Y no olvides compartir tu solución en redes!
let answer = null
let arrAux = [...numbers]
for (let e of numbers) {
let aux = result
let faltante = aux - e
arrAux.splice(numbers.indexOf(e), 1)
if (arrAux.includes(faltante)) {
answer = [e, faltante]
break
}
}
return answer
}

Collapse
kylety1990 profile image
kylety1990

const array = [3,5,2,8,9,6];
const result = 50;

function searchResult(array, result){
let elements = null;
array.every((val, ind)=>
array.every((num, i) => (val + num) === result && ind !== i? (elements = [val, num],false) : true
))
return elements;
}

console.log(searchResult(array, result));