美文网首页网页前端后台技巧(CSS+HTML)让前端飞前端面试
2. 剑指offer——查找某个值是否存在于二维数组

2. 剑指offer——查找某个值是否存在于二维数组

作者: 椰果粒 | 来源:发表于2018-04-21 18:39 被阅读5次

    1. 问题描述
    在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
    2. 分析
    使用JavaScript中数组的some()方法
    3. 代码
    首先看一个一维数组的栗子

    方法一:
    let array = [1,2,4,5,20]
    function find(target,array){
        return array.some(value=>value===target)
    }
    console.log(find(1,array));
    
    方法二:
    array.includes(1)
    
    方法三:
    !!~array.indexOf(1)
    

    再看二维数组:

    let array = [[1,2,8],[2,4,9,12],[4,7],[6,8,11,15]];
    function find(target, array){
        return array.some(arr=>arr.some(value=>value===target))
    }
    

    4. 结论

    1. 数组的some()方法查询数组中是否有满足条件的项,只要有一个满足条件,就返回true。
    2. some()方法接收一个函数,此函数就是条件
    3. includes()可以用于数组或者字符串,存在返回true。str.includes('aa',2),这里的2表示从下标2开始检测
    4. indexOf()和lastIndexOf(),检测某个值是否存在于数组或字符串,返回下标,没有返回-1
    5. !! 转换成布尔值

    相关文章

      网友评论

        本文标题:2. 剑指offer——查找某个值是否存在于二维数组

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