ES6新增函数总结和range函数实现

Array.from  类数组,Set,字符串转为数组

Array.of   不定参数转为数组

Array.prototype.fill(value,[start],[end]) 对数组在指定范围填充值

Array.prototype.find() 查找满足条件的首个元素,否则返回undefined

Array.prototype.findIndex() 查找满足条件的首个元素的索引Array.prototype.includes() 判断数组是否包含指定的值,包含返回true,否则返回false,对象不能检测

Array.prototype.entries() 用数组的索引和值组成的对象生成一个迭代器

Array.prototype.keys() 用数组的索引生成一个迭代器

Array.prototype.values() 用数组的值生成一个迭代器

 String.prototype.trim()   去除两端空格

String.prototype.repeat()  重复字符串生成新字符串

Sting.prototype.startsWith(str,position)   以指定子字符串开始,开始位置可选

String.prototype.endsWith(str,position)以指定子字符串结尾,结束位置可选

String.prototype.includes(str,positon)   是否包含指定的子串,位置可选 

Object.assign  对象合并

1. range函数实现

1.1 keys方法

function range(start,end){
    return [...Array(end - start).keys()].map(item => start + item);
}

在简单情形下,可以直接

[...Array(5).keys()] 来生成一个0到4的序列

1.2 fill方法

function range(start,end){
    return Array(end-start).fill(0).map((el,i) => start + i);
}

 1.3 Array.from方法

function range(end) {
    return Array.from({ length: end }, (_, index) => index);
}

1.4 其他写法

Array(10).fill(1).map((x, y) => x + y)

Array.from(Array(20).keys())

[...Array(20).keys()]

for (const x of Array(5).keys()) {
  console.log(x);
}

var range = (l,r) => new Array(r - l).fill().map((_,k) => k + l);

 

posted @ 2019-07-16 15:31  全玉  阅读(2438)  评论(0编辑  收藏  举报