如何在ES2015中仅生成从0到n的数字范围?
2022-08-30 01:55:15
我总是发现JavaScript中缺少的函数,因为它在python和其他版本中可用?有没有简洁的方法可以在ES2015中生成数字范围?range
编辑:我的问题与提到的重复不同,因为它是特定于ES2015而不是ECMASCRIPT-5的。另外,我需要范围从0开始,而不是特定的起始数字(尽管如果在那里会很好)
我总是发现JavaScript中缺少的函数,因为它在python和其他版本中可用?有没有简洁的方法可以在ES2015中生成数字范围?range
编辑:我的问题与提到的重复不同,因为它是特定于ES2015而不是ECMASCRIPT-5的。另外,我需要范围从0开始,而不是特定的起始数字(尽管如果在那里会很好)
您可以在新创建的数组的键上使用展开运算符。
[...Array(n).keys()]
或
Array.from(Array(n).keys())
如果使用 TypeScript,则语法是必需的Array.from()
我还发现了一种更直观的方法:Array.from
const range = n => Array.from({length: n}, (value, key) => key)
现在,此函数将返回从 0 到 n-1 的所有数字range
要支持的范围的修改版本,是:start
end
const range = (start, end) => Array.from({length: (end - start)}, (v, k) => k + start);
编辑正如@marco6所建议的那样,如果它适合您的用例,则可以将其作为静态方法。
Array.range = (start, end) => Array.from({length: (end - start)}, (v, k) => k + start);
并将其用作
Array.range(3, 9)