у меня есть массив например [10, 5, 6, 3], также переменная b = 13, я хочу вычислить сумму каждого элемента массива, если сумма равная = b(13) возвращает true, я знаю сначала и сумма последних элементов = 13. Как я могу проверить, какая пара суммы элементов?
сумма двух значений в массиве



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать этот алгоритм, чтобы проверить, имеют ли два значения в массиве заданную сумму или нет.
function pairWithSum(array,sum){
//sort the array
const arr = array.sort((a,b) => a -b);
while(arr.length > 1){
if (arr[0] + arr[arr.length - 1] > sum) arr.pop()
if (arr[0] + arr[arr.length - 1] < sum) arr.shift()
if (arr[0] + arr[arr.length - 1] === sum) return true
}
return false;
}
console.info(pairWithSum([10,3,5,6,1],1))
console.info(pairWithSum([10,3,5,6,1],11))
console.info(pairWithSum([10,3,5,6,1],13));
console.info(pairWithSum([10,3,5,6,1],55))Вы можете взять хэш-таблицу для отсутствующих частей и вернуться, если они будут найдены.
function check(array, sum) {
var hash = {},
i = 0,
v;
while (i < array.length) {
v = array[i];
if (hash[v]) return true;
hash[sum - v] = true;
++i;
}
return false;
}
console.info(check([10, 5, 6, 3], 13));
console.info(check([10, 5, 6, 3], 17));
вы хотите проверить сумму двух значений в
arrayили сумму любого количества значений?