返回介绍

sort

发布于 2019-05-31 13:13:00 字数 2351 浏览 942 评论 0 收藏 0

Creates a new sequence with the same elements as this one, but ordered using the specified comparison function.

This has essentially the same behavior as calling Array#sort, but obviously instead of modifying the collection it returns a new Sequence object.

Signature

Sequence.sort = function(sortFn, descending) { /*...*/ }
Sequence.sort = function sort(sortFn, descending) {
  sortFn || (sortFn = compare);
  if (descending) { sortFn = reverseArguments(sortFn); }
  return new SortedSequence(this, sortFn);
}
NameType(s)Description
sortFnFunction?

The function used to compare elements in the sequence. The function will be passed two elements and should return:

- 1 if the first is greater
- -1 if the second is greater
- 0 if the two values are the same
descendingboolean

Whether or not the resulting sequence should be in descending order (defaults to false).

returnsSequence

The new sequence.

Examples

Lazy([5, 10, 1]).sort()                // sequence: [1, 5, 10]
Lazy(['foo', 'bar']).sort()            // sequence: ['bar', 'foo']
Lazy(['b', 'c', 'a']).sort(null, true) // sequence: ['c', 'b', 'a']
Lazy([5, 10, 1]).sort(null, true)      // sequence: [10, 5, 1]

// Sorting w/ custom comparison function
Lazy(['a', 'ab', 'aa', 'ba', 'b', 'abc']).sort(function compare(x, y) {
  if (x.length && (x.length !== y.length)) { return compare(x.length, y.length); }
  if (x === y) { return 0; }
  return x > y ? 1 : -1;
});
// => sequence: ['a', 'b', 'aa', 'ab', 'ba', 'abc']

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

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

发布评论

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