[2
从CodeWars挑战中学习:最小
因此,我们得到了一个数字数组和一个特定的索引。我们的任务是搜索索引中元素的最小数字
例子: 数组:[4,1,3,5,6] 索引:0(参考编号为4)
结果是3,因为最小的数字大于4是5,该数字在索引3中。 为什么可以3?数组从0 开始 所以 : 4:索引0
1:索引1
3:索引2
5:索引3
6:索引4
我做出的解决方案
要完成这个挑战,我制作了一个称为Lustlarger的函数。以下是代码:
> a [i] && a [index]
我将较小的无穷大设置为比较的初始值。
function leastLarger(a, i) { let smaller = Infinity; // Nilai pembanding awal let result = -1; // Default hasil kalau nggak ada elemen yang memenuhi for (let index = 0; index a[i] && a[index]
[2
- 我检查数组中的每个元素。
必须满足两个条件:
该元素大于参考元素(a [i])。如果满足了两个条件,我更新较小的,并将元素索引保存在结果中。
- 该元素小于先前的比较(较小)。
如果有元素满足,则返回索引的功能。
- 如果没有,结果仍然为-1。
console.log(dusellarger([[4,1,3,5,6],0)); //输出:3
- 使用示例
- 解释:
- 对于那些喜欢“真正的JavaScript”方法的人,我们可以使用默认方法(例如Filter,Math.min.min和FindIndex)将此解决方案写入一行代码:
参考元素为4(在索引0中)。 大于4的元素是[5,6]。
从元素中,最小的是5,其位置在索引3中。
- 提前解决方案:简明
&& x ========== math.min(... a.filter(y => y> y>> a [i]));此代码执行相同的操作,但具有更有功能和简洁的样式。适合您想编写快速解决方案而没有太多其他变量的情况。
console.log(leastLarger([4, 1, 3, 5, 6], 0)); // Output: 3现实世界中的案例研究 这样的函数实际上在各种实际情况下都非常相关。一些示例:
const leastLarger = (a, i) => a.findIndex(x => x > a[i] && x === Math.min(...a.filter(y => y > a[i])));在仓库中,如果您需要找到一个仍然足以存储某些物品的容量最小的存储位置。
这个挑战看起来很简单,但是当我尝试时,我意识到整洁的逻辑非常重要。我喜欢这个挑战的是,这个概念在现实世界中有多么重要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3