es6-10

随便写写,用了这么久了说总结吧。总是想显得不那么舒适,换个姿势来吧。

String.prototype.includes()   //ES6用于查询给定字符串是否包含某一个字符
Array.prototype.includes()    //ES7用于判断给一个数组是否包含一个指定的值

includes(valueToFind[,fromIndex])
//valueToFind : 需要查找的元素
//fromIndex :可选参数 从fromIndex索引处开始查找valueToFind。如果为负值,则按升序从array.length+fronIndex(绝对值)的索引开始搜。默认为0。

并不会按照顺序来吧,想到哪看到哪,就写到哪吧!无序的集中。

Array.prototype.flat()   //ES10 按照一个可指定的深度递归遍历数组,并将所有元素于与遍历到的子数组中的元素合并为一个新数组返回。

const a = [1,2,3,4,[5,[6,7]]]
a.flat()  //[1, 2, 3, 4, 5, [6,7]]
a.flat(2) // [1, 2, 3, 4, 5, 6, 7]
a.flat(Infinity)   //不知层级时就用这个吧,毕竟简单   [1, 2, 3, 4, 5, 6, 7]  

flat([depth])
//depth : 要提取嵌套数组的结构深度,默认值是1。
//该方法会移除数组中的空项。

说到这个就要说说 reduce()方法了,她是对数组中的每个元素执行一个由您提供的函数(升序执行),并将结果汇总为单个返回值。

let a = [1,3,4,5,2]
const reducer = (accumulator,currentValue) => accumulator + currentValue
a.reduce(reducer)  //  15   

reduce(callback(accumulator,currentValue[,index[,array]])[,initialValue])
//callback 执行数组中每个值(如果没有提供initialValue则第一个值除外)的函数,包含4个参数
//accumulator:累计器累计回调 的返回值。她是上一次调用回调时返回的累计值,或initialValue
//currentValue:数组正在处理的元素
//index:可选参数。数组中正在处理的当前元素的索引。如果提供了initialValue,则起始索引为0,否则从索引1起始。
//array:可选参数。调用reduce()的数组。
//initialValue:可选参数。作为第一次调用callback函数时的第一个参数的值。如果没有提供初始值,则将使用数组中的第一个元素。在没有初始值得空数组上调用reduce将报错。

look this

//累加对象数组里的值
var initialValue = 0;
var sum = [{a:1},{a:2},{a:3}].reduce((accumulator, currentValue) => accumulator + currentValue.a),initialValue);
// sum   6

//将二维数组转化为一维数组
var flattened = [[0,1],[2,3],[4,5]].reduce((accumulator, curentValue) => accumulator.concat(currentValue),[])
// [0,1,2,3,4,5]

//计算数组中每个元素出现的次数
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
var count = names.reduce((a,c) => {
  if(c in a){
    a[c] ++ ;
  }else{
    a[c] = 1
  }
  return a;
},{});
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容