Kar*_*rty 4 javascript arrays underscore.js ecmascript-6 ecmascript-7
是否有任何ECMAScript 6/7相当于下划线的range功能?
在下划线中:
_.range(startPage, endPage + 1);
Run Code Online (Sandbox Code Playgroud)
在ES2015中:
Array.from(Array(n), (_, i) => x + i)
Run Code Online (Sandbox Code Playgroud)
不确定ES2015版本的工作原理.我想知道javascript的ecmascript中的范围是如何工作的
我们的想法是创建一个长度数组end - start + 1,然后使用Array#from将其填入相关数字.
Array.from()方法从类似数组或可迭代的对象创建一个新的Array实例.
在这种情况下,Array#from需要一个具有length属性的对象.使用Array(n)创建这样的对象(数组).您也可以{ length: n }直接使用.在这种情况下n = end - start + 1.
Array#from接受一个回调来接受一个mapFn可以转换迭代值的函数.这个函数接收2个参数 - 值(在这种情况下我们可以忽略)和索引(基于0).添加start到当前索引将创建范围中的数字.
const range = (start, end) => Array.from(Array(end - start + 1), (_, i) => start + i);
console.log(range(5, 10));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1141 次 |
| 最近记录: |