美文网首页
用最精炼的代码实现数组非零非负最小值 index

用最精炼的代码实现数组非零非负最小值 index

作者: 我是一个前端 | 来源:发表于2021-12-07 18:58 被阅读0次

用最精炼的代码实现数组非零非负最小值 index

// 例如:[10,21,0,-7,35,7,9,23,18] 输出 5, 7 最小
function getIndex(arr){
let index=null;
...
return index;
}

我选择用reduce实现
1、首先利用了reduce的第二个可选参数,作为第一次调用回调函数时传给pre的值,我选择了一个json,来存储最小的索引值和最小值{i:0,val:Infinity} 之所以val用了Infinity是不确定最小值能有多大。
2、接下来就简单了,规则是大于等于0的最小值,三母来判断大于0且小于当前json的val,如果符合条件赋值操作,如果不符合返回上次pre。

[1,2,3,4,5,6,9,-1].reduce((pre,cur,index)=>{
   return cur>0&&cur<pre['val']?{i:index,val:cur}:pre
},{i:0,val:Infinity})

接下来按照题目封装成函数

function getIndex(arr){
  return arr.reduce((pre,cur,index)=>{
    return cur>0&&cur<pre["val"]?{val:cur, i:index}:pre;
  },{val:Infinity,i:0})
}

console.log(getIndex([22,31,41,53,6,0,-2,4,5,1,23]))
image.png

相关文章

  • 用最精炼的代码实现数组非零非负最小值 index

    用最精炼的代码实现数组非零非负最小值 index // 例如:[10,21,0,-7,35,7,9,23,18] ...

  • JavaScript实现LeetCode第66题:加一

    首文发表在 JavaScript实现LeetCode第66题:加一 题目描述 给定一个非负整数组成的非空数组,在该...

  • 前端小知识10点(2019.5.18)

    1、当给数组的index赋负数或小数时,数组的长度有无变化? 由此可见,array的length属性只计算非负整数...

  • 算法13 Plus One

    题目:给一个用数组表示的非负整数,加一并返回。假设数组除了 0 本身不会零打头(不会有 01,007 这样的数组)...

  • Leetcode 题解|66. 加一

    Tags: 数组 题目 加一 用一个由int类型正整数组成,且元素大于1的数组来表示一个非负整数。实现一个函数对这...

  • 66. 加一

    题目 给定一个非负整数组成的非空数组,给整数加一。 可以假设整数不包含任何前导零,除了数字0本身。 最高位数字存放...

  • [LeetCode] 66. 加一

    给定一个非负整数组成的非空数组,给整数加一。 可以假设整数不包含任何前导零,除了数字0本身。 最高位数字存放在列表...

  • Leetcode_66 Plus One

    给定一个非负整数组成的非空数组,给整数加一。 可以假设整数不包含任何前导零,除了数字0本身。 最高位数字存放在列表...

  • js实现二分查找法

    有序数组 递归实现 非递归实现

  • 专题:递归与累加阶乘

    递归实现累加和阶乘 累加核心代码: 阶乘的核心代码: 阶乘的非递归实现思路: 阶乘的非递归实现核心代码:

网友评论

      本文标题:用最精炼的代码实现数组非零非负最小值 index

      本文链接:https://www.haomeiwen.com/subject/oxyaxrtx.html