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

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"]);

 

posted @ 2021-04-28 20:24  roseim  阅读(75)  评论(0编辑  收藏  举报