Count数组中两个元素小于或等于一个求和值的次数

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

本文关键字:于一个 求和 小于 元素 数组 两个 Count      更新时间:2023-09-26

我有这个JS函数,它找到两个元素等于一个和值的次数。我试图修改这一点,使条件不仅是当两个元素等于sum,而且当它小于sum值

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);

我如何改变这个条件var temp = sum - array[i];,使它说明temp<= sum - array[i];的实例?

我已经尝试分配第二个temp变量,该变量将保存temp <= sum - array[i];时的所有值,但我没有成功。

你做得很复杂。只需使用嵌套循环来添加两个数组元素,并测试它们是否小于和。

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);

你这样做的方式适用于相等条件,因为你可以在map中查找特定的键。但是当你有一个比较条件时,没有什么特别的东西要找