• 算法基础学习之函数的运用


    1、js reduce函数的用法。可以用来累加
    array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
    total 必需。初始值, 或者计算结束后的返回值。
    currentValue 必需。当前元素
    currentIndex 可选。当前元素的索引
    arr 可选。当前元素所属的数组对象。
    initialValue 可选。传递给函数的初始值
    函数实例:

    要求:返回给出的句子中最长的单词的长度且你的返回应该是一个数字。

    function findLongestWordLength(str) {
      return str.split(' ')
        .reduce(function(longest,word) {
          return Math.max(longest, word.length)
        },0);
    }
    
    
    findLongestWordLength("The quick brown fox jumped over the lazy dog");

    输出结果为:6

    2、js map函数的用法

       map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

    实例演示:

    要求:返回一个数组,它要由给出的所有子数组中的最大值组成。

    function largestOfFour(arr) {
      // You can do this!
      return arr.map(Function.apply. bind(Math.max, null));
    }
    
    largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

    返回的结果是:  [5,27,39,1001]

    除此之外代码中的 

    arr.map(Function.apply. bind(Math.max, null))

    涉及到了apply、bind方法可以点击这里来理解这两个函数。

    3、js slice方法

    arrayObject.slice(start,end) 如果不规定end则默认到数组结尾的所有元素
    start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
    end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
    实例演示:
    要求:检查一个字符串(第一个参数, str)是否以给定的字符串(第二个参数 target)结束。
    function confirmEnding(str, target) {
      return str.slice(str.length - target.length) === target;
    }
    
    confirmEnding("Bastian", "n");

    返回结果为:true

    如果str中不是target来结尾的话则会返回 false。

    今天的算法学习先到这里。明天继续!!

    第二天

    学习算法的几分钟 indexOf ()

    indexOf ()   方法可以返回某个制定的字符串值在字符串中首次出现的位置。

    使用语法 某一个变量.indexOf (searchvalue,fromindex)

    参数  描述
    searchvalue  必需,规定需检索的字符串值。
    fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是0到stringObject.length-1。如省略该参数,则将从字符串的首字符开始检索。

    如果 某一个变量.indexOf (searchvalue,fromindex)中searchvalue没有的话,就会出现-1的值,这样就可以判断是否匹配。

    因为indexOf对于大小写比较敏感,因此我们常常使用 变量.toLowerCase(),来让变量变成小写。

    function mutiation(arr) {
        let test=arr[1].toLowerCase();
        let target=arr[0].toLowerCase();
        for (let i =0;i<arr.length;i++) {
            if(target.indexOf(test[i])<0) {
                   return false;
            }
        } 
        return true;
    }
    
    mutitation(["hello","hey"]);
  • 相关阅读:
    vscode中设置Python解释器
    Python语言中当前工作目录(Current Working Directory, cwd)与模块搜索第一路径都是指什么???
    在vscode中通过修改launch.json文件为项目添加环境变量——在launch.json文件中修改env变量
    Docker 中安装的 RabbitMQ 开通STOMP通道 用于 WebSocket 的Web端连接
    初中生能看懂的微积分
    conda创建虚拟环境到指定文件夹
    Sorry, Ubuntu 16.04 has experienced an internal error
    卷积
    Mac mini和Mac studio
    linux下无法进入外加移动硬盘文件夹 No such file or directory
  • 原文地址:https://www.cnblogs.com/3414796712qq/p/14715658.html
Copyright © 2020-2023  润新知