小于当前数字的 JavaScript


在给定的问题陈述中,我们必须借助 Javascript 找到小于当前数字的较小数字。因此,为了完成此任务,我们将跟踪项目并将当前数字递减 1 以获得所需的结果。

理解问题陈述

问题陈述要求编写一个函数,该函数将接收一个整数数组作为输入,并返回相同长度的数组,其中每个元素显示给定数组中小于相应项目的数字的数量。例如,如果我们有一个数组 [5, 4, 3, 2, 1],则输出应如下所示:[4, 3, 2, 1, 0]。

为了解决这个问题,我们将遍历给定的数组,并将每个项目与数组中所有剩余的项目进行比较,以获取较小项目的数量。

上述问题的逻辑

因此,基本上我们将使用 reduce 和 filter 方法来迭代给定的输入数组,并且我们将生成一个新数组,其中包含每个项目的较小数字的数量。Javascript 的 reduce 方法将接受两个参数。在函数内部,我们将使用 Javascript 的 filter 方法获取一个新数组,其中包含所有小于当前数字的其他项目。然后,我们将获取其长度以获取较小数字的数量。然后将计数的值推送到结果数组中,并为下一次迭代返回更新后的数组。

Learn JavaScript in-depth with real-world projects through our JavaScript certification course. Enroll and become a certified expert to boost your career.

算法

步骤 1 - 通过在其中定义整数数字的数组来启动程序。

步骤 2 - 现在定义一个函数以获取小于当前数字的小数字。

步骤 3 - 使用 reduce 方法开始回调函数作为 res 和结果数组的初始值作为 num。

步骤 4 - 在函数内部,使用 filter 方法定义一个新数组来存储给定数组的所有较小数字。我们将获得较小数字的长度。

步骤 5 - 将计数的值推送到结果数组中,并为下一次遍历返回更新后的 res 数组。

算法代码

Open Compiler
const arr = [5, 4, 3, 2, 1]; //function to get the smaller number of current number const smallerThanCurrent = (arr = []) => { return arr.reduce((res, num, i) => { const count = arr.filter(otherNum => otherNum < num).length; res.push(count); return res; }, []); }; console.log(smallerThanCurrent(arr));

复杂度

上述方法使用 Javascript 的 reduce 和 filter 方法,时间复杂度为 O(n^2)。reduce 方法用于获得更具函数式编程的方法。

结论

我们已经实现了给定问题陈述的解决方案,以查找数组中小于当前数字的数字的数量。但是对于大型数组,程序的时间复杂度效率不高,我们可能需要使用比该程序更有效的方法。

更新于:2023年5月18日

445 次查看

开启您的 职业生涯

通过完成课程获得认证

开始
广告