Array1中的元素等于或小于array2中的元素?

时间:2018-10-09 03:04:19

标签: javascript

场景: 如果给定Array1,例如[1, 2, 3]和Array2 [2,4],则我的输出必须为[2, 3],因为Array1中有2个元素小于或等于Array2 [1]。和Array1中的3个小于或等于Array2[2]的元素。

到目前为止,我已经知道了...

function counts(nums, maxes) {
  let empArr = [];
  //compare SECOND ARRAY maxes
  for (let i = 0, count = 0; i < maxes.length; i++) {
    //to FIRST ARRAY nums
    for (let j = 0; j < nums.length; j++) {
      if (nums[j] <= maxes[i]) {
        count++;
      }
    }
    empArr.push(count);
  }
  return empArr
}

console.log(counts([1, 2, 3], [2, 3]));

这给了我[2, 5],但我希望[2, 3]。这里有什么帮助吗?谢谢!

1 个答案:

答案 0 :(得分:2)

count = 0;中的for()声明并没有按照您认为的做。 for构造函数中这种性质的声明仅在循环的第一次迭代之前运行一次。在循环顶部手动重置count

function counts(nums, maxes) {
  let empArr = [];
  //compare SECOND ARRAY maxes
  for (let i = 0; i < maxes.length; i++) {
    let count = 0;
    //to FIRST ARRAY nums
    for (let j = 0; j < nums.length; j++) {
      if (nums[j] <= maxes[i]) {
        count++;
      }
    }
    empArr.push(count);
  }
  return empArr
}

console.log(counts([1, 2, 3], [2, 3]));