ES6高阶函数(filter/map/reduce)
ES6语法
js判断字符串是否包含在另一个字符串中
1、旧的方式: indexOf('变量') ----> 结果为-1 代表未找到,否则就是找到了 返回下标
2、es6新增3种方式: 返回 true或false
1、includes('变量',搜索的位置) 表示是否找到参数变量
2、startsWith('变量',搜索的位置) 从头部匹配
3、endsWith('变量',搜索的位置) 从尾部匹配
str.repeat(n) 表示将源字符串重复n次
‘hello’.repeat(3) ---> 'hellohellohello'
参数如果是小数,会被取整
参数如果是负数或者infinity,会报错
str.padStart(最小长度,补全的字符串) 表示头部补全最小长度的字符串
str.padEnd(最小长度,补全的字符串) 表示尾部补全最小长度的字符串
示例:‘920312’.padEnd(10,'0') ---> '9203120000' tip:必须是字符串
函数、
//1、需求:筛选出数组中数字小于100的数字。 //2、需求:将数组中的每个数字乘以3. //3、需求:数组中的数组汇总求和。 let nums = [16,38,49,88,291,32,231,123,101,22] //旧的写法: let old_newnums = [] //[16, 38, 49, 88, 32, 22] //1、 for (let i = 0; i < nums.length; i++) { if (nums[i]<100) {old_newnums.push(nums[i])} } //2、 let old_newnums1 = [] //[48, 114, 147, 264, 96, 66] for (let i = 0; i < old_newnums.length; i++) { old_newnums1.push(old_newnums[i]*3) } //3、 let old_newnums2 = 0 // 735 for (let i = 0; i < old_newnums1.length; i++) { old_newnums2 += old_newnums1[i] } //新的写法: filter / map / reduce // filter中的回调函数有一个要求:必须返回一个bollean值 // true : 当返回true时,函数内部会自动将这次回调的n加入到新的数组中 // false: 当返回fasle时,函数内部会过滤掉这次的n。 let new_nums = nums.filter(function (n) { return n < 100 }) // map 映射函数 let new_nums1 = new_nums.map(function (n) { return n * 3 }) // reduce(func(上一次结果 初始值为默认值,数组的n),默认值=0) 对数组中所有的内容进行汇总。 let new_nums2 = new_nums1.reduce(function (prev,n){ return prev + n },0) //或者可以写成 let new_writeNums = nums.filter(function (n){return n < 100}).map(function(n){return n * 3}).reduce(function(prev,n){return prev + n},0)