Sí, como sugiere el título.
Dada una matriz arr, busque pares de elementos cuya suma sea igual al segundo argumento arg y devuelva la suma de sus índices.
lo que he hecho hasta ahora
function pairwise(arr, arg) { if (arr.length === 0) return 0 let res = []; let indexes = []; let indexArr = [] for (let i = 0; i < arr.length - 1; i++) { for (let j = i + 1; j < arr.length; j++) { if (arg === arr[i] + arr[j] && !indexes.includes(i) && !indexes.includes(j)) { res.push([arr[i], arr[j]]); indexes.push(i); indexes.push(j); } } } console.log(res) for (let i = 0; i < res.length; i++) { for (let j = 0; j < res[i].length; j++) { indexArr.push(arr.indexOf(res[i][j])) } } return indexArr.reduce((curr, prev) => curr + prev) } pairwise([1, 1, 1], 2);Estoy haciendo esto en Freecodecamp. Pasa algunas pruebas pero falla las siguientes pruebas:
por pares ([1, 1, 1], 2) debe devolver 1. (el código anterior devuelve 0) por pares ([0, 0, 0, 0, 1, 1], 1) debe devolver 10. (el código anterior devuelve 8)
Creo que lo estoy haciendo mal en la parte indexOf. ¿Cómo resolver esto?