2种方法从数组里面找到最接近某个数值的值(小于该指定值,并且大于其他值)

1、用于递归查找

var arr = [6,8,1,6,8,7,9,10,11,55,74,12,3,5,6,8,9,4,2,3,5,4,86,31,5]
let testStr = 0
let testArr = []
function MaxFn (str, arr) {
    let list = []
    arr.forEach((el, index) => {
        if (el < str && el > testStr) {
            list.push(el)
        } else if (el < testStr || el > testStr) {
            list.splice(index, 1)
        }
        testStr = el
    })
    testArr = list
    if (list.length != 1) {
        MaxFn(str, list)
    }
}
MaxFn (74, arr)
console.log(testArr)
// 比如我想找74最接近他的值(注意:找到的值必须是小于这个值的,大于则排除)
// 那我找到的值就是55。

// 我想找接近10的,那我找到的就是9

2、 通过找到所有小于该指定值的所有数值,并且把他们放到数组里面,以小到大排序,让后取数组最后一位

var arr = [6,8,1,6,8,7,9,10,11,55,74,12,3,5,6,8,9,4,2,3,5,4,86,31,5]
function MaxFn (str, arr) {
    let list = []
    arr.forEach((el, index) => {
    // 1、在所有时间里面找出小于当前时间
        if (el < str) {
        // 2、把所有小于当前时间的时间整合到数组
            list.push(el)
        }
    })
    // 3、数组从小到大排序
    list.sort(function(a,b){return a-b;});
    // 4、从排序的数组里面获取最后一位
    return list[list.length-1]
}
console.log(MaxFn(10, arr))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 动态规划 111. 爬楼梯思路类似斐波那契数列注意考虑第 0 阶的特殊情况 272. 爬楼梯 II思路类似上题,只...
    6默默Welsh阅读 2,571评论 0 1
  • 1、用C语言实现一个revert函数,它的功能是将输入的字符串在原串上倒序后返回。 2、用C语言实现函数void ...
    希崽家的小哲阅读 6,652评论 0 12
  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,494评论 0 13
  • 前言 2. 实现 Singleton 3. 数组中重复的数字 4. 二维数组中的查找 5. 替换空格 6. 从尾到...
    Observer_____阅读 3,129评论 0 1
  • 张晨 01 张晨在迷迷糊糊中关掉了床头的闹钟,钻回被窝抱紧枕头想继续睡。 他忘了今天是入职的第一天。 再起床的时候...
    子夜河阅读 848评论 1 5

友情链接更多精彩内容