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