返回介绍

range

发布于 2019-05-31 13:12:51 字数 1545 浏览 993 评论 0 收藏 0

Creates a sequence from a given starting value, up to a specified stopping value, incrementing by a given step. Invalid values for any of these arguments (e.g., a step of 0) result in an empty sequence.

Signature

Lazy.range = function() { /*...*/ }
Lazy.range = function range() {
  var start = arguments.length > 1 ? arguments[0] : 0,
  stop  = arguments.length > 1 ? arguments[1] : arguments[0],
  step  = arguments.length > 2 && arguments[2];

  if (step === false) {
step = stop > start ? 1 : -1;
  }

  if (step === 0) {
return Lazy([]);
  }

  return Lazy.generate(function(i) { return start + (step * i); })
.take(Math.ceil((stop - start) / step));
}
NameType(s)Description
returnsGeneratedSequence

The sequence defined by the given ranges.

Examples

Lazy.range(3)         // sequence: [0, 1, 2]
Lazy.range(1, 4)      // sequence: [1, 2, 3]
Lazy.range(2, 10, 2)  // sequence: [2, 4, 6, 8]
Lazy.range(5, 1, 2)   // sequence: []
Lazy.range(5, 15, -2) // sequence: []
Lazy.range(3, 10, 3)  // sequence: [3, 6, 9]
Lazy.range(5, 2)      // sequence: [5, 4, 3]
Lazy.range(7, 2, -2)  // sequence: [7, 5, 3]
Lazy.range(3, 5, 0)   // sequence: []

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文