【发布时间】:2020-09-29 03:13:37
【问题描述】:
此问题与现有问题类似:Create array of all integers between two numbers, inclusive, in Javascript/jQuery
但是,我不想简单地生成两个边界 min 和 max 之间的范围,而是使用指定的 limit 创建数字 start 和 end 之间的范围。
示例:
start 19end 30limit 60
结果: [19, 20, 21, 22, ..., 28, 29, 30]
而start 30 end 19 limit 60
结果: [30, 31, 32, ..., 58, 59, 60, 1, 2, 3, ..., 17, 18, 19]
注意:数组的任何元素都不能大于limit。
我猜我还必须定义一个下限(在这种情况下为 1 以排除数组中的零)。
如何在普通的 ES6 中实现这一点?
【问题讨论】:
-
start : 10 , end : 20 ,limit : 15值的结果是什么? -
@EhsanNazeri 那将是
[10, 11, ..., 14, 15]-limit在这种情况下应该具有最高优先级(任何数字都不能大于limit) -
那么
if (start > end) return [...range(start, limit), ...range(0, end)] else return range(start, end)? -
@Bergi 哈哈,我喜欢人们如何将一开始看起来很困难的问题变成一个非常简单的问题!对,就是这样
-
@Bergi 有问题。把它改成这个
if (start > end) return [...range(start, limit), ...range(0, end)] else return range(start, Math.min([end,limit])
标签: javascript ecmascript-6 range