RJK - 1 year ago 135
Javascript Question

# Count number of times two elements in array are less than or equal to a sum value - Javascript

I have this JS function that finds the number of times two elements equal to a sum value. I am trying to modify this so that the condition isn't only when the two elements are equal to sum, but when it's less than the sum value as well.

``````var array = [-10, -8, -1, 0, 1, 6, 10];
var sum = 16;

function findLessThanOrEqualSum(array, sum){
var count = 0;
var map = {};
for(var i = 0; i<array.length; i++){
var temp = sum - array[i]; //This right here only accounts for when two elements = sum

if(temp >= 0 && map[temp]){
console.log(sum + " " + array[i] + " " + temp);
count++;
}
map[array[i]] = true;
}
console.log(count);
}

findLessThanOrEqualSum(array, sum);
``````

How would I change this condition
`var temp = sum - array[i];`
so that it accounts for the instances
`temp`
is
`<=`
`sum - array[i];`
?

I've tried assigned a second
`temp`
variable that will hold all the values for when
`temp <= sum - array[i];`
but I was not successful. Any help would be appreciated.

You're doing it in a very convoluted way. Just use nested loops that add two array elements, and test if they're less than the sum.

``````var array = [-10, -8, -1, 0, 1, 6, 10, 11, 8, 9];
var sum = 16;

function findLessThanOrEqualSum(array, sum) {
var count = 0;
for (var i = 0; i < array.length - 1; i++) {
for (var j = i + 1; j < array.length; j++) {
if (array[i] + array[j] < sum) {
console.log(sum + " " + array[i] + " " + array[j]);
count++;
}
}
}
console.log(count);
}

findLessThanOrEqualSum(array, sum);``````

The way you're doing it works for the equal condition because you can look for a specific key in `map`. But there's no specific thing to look for when you have an comparison condition.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download