繁体   English   中英

我需要在 javascript 中创建一个函数来显示有多少个数组成员小于给定的数字

[英]I need to create a function in javascript to show how many members of array are less than a given number

我认为我的错误在return部分

我尝试了很多东西,但我找不到解决方案

问题是:“编写一个名为 countNums 的函数,它获取两个参数 - 一个数字数组和一些成员并将数组中的一些器官打印到屏幕上,这些器官小于给定器官。对于屏幕, countNums([7,3,9,1,20], 10)将打印为:例如“4 个元素小于 10”。

function countNums(arr, element) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] < element) {
            return " " + arr[i] + "elements are less than" + element + " ";
        }
    }

}
arr = [14, 25, 36, 50]

document.write(countNums(arr, 20));

Javascript 具有可以帮助您轻松完成此操作的函数,例如array.filter ,它将根据条件返回数组的子集。

但是,我已经提出了一个答案,该答案使用您在自己的尝试中概述的逻辑,但为了返回正确的结果而进行了修改。

您的代码的主要问题是您实际上并没有计算目标数字以下的元素数量 - 而是在第一个数组元素低于目标数字时返回。

我通过添加一个count变量来保持运行计数来解决这个问题。

if语句中,如果数组元素小于数字,则count加 1。 在函数结束时,返回总运行计数。

这是一个工作片段,显示了这一点:

 function countNums(arr, element) { let count = 0; for (var i = 0; i < arr.length; i++) { if (arr[i] < element) count++; } return count; } let arr = [14,25,36,50] let num = 20; let result = countNums(arr, num); document.write(result + " element(s) are less than " + num);

在上面的代码片段中,您可以修改num以指定数组元素必须小于的目标数字。 输出语句将自动修改以显示正确的措辞。

使用 Array 内置方法“reduce”是一种典型情况:

const array = [12, 6, 11, 4]

const count = (arr, num) => {
  return `${arr.reduce(
    (acc, val) => val < num
      ? acc + 1
      : acc, 0
  )} number(s) are less than ${num}`
}

console.log(count(array, 10))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM