ramda: sortBy apparently sorting incorrectly

Apologies if I’m misunderstanding something, but I have the following set of objects, which I’m trying to sort by date:

const data = [{
  "date": "2018-09-10T00:00:00.000Z"
}, {
  "date": "2018-09-07T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-06T00:00:00.000Z"
}, {
  "date": "2018-09-05T00:00:00.000Z"
}, {
  "date": "2018-09-05T00:00:00.000Z"
}, {
  "date": "2018-09-05T00:00:00.000Z"
}, {
  "date": "2018-09-05T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-04T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-09-03T00:00:00.000Z"
}, {
  "date": "2018-08-31T00:00:00.000Z"
}, {
  "date": "2018-08-31T00:00:00.000Z"
}, {
  "date": "2018-08-31T00:00:00.000Z"
}, {
  "date": "2018-08-31T00:00:00.000Z"
}, {
  "date": "2018-08-30T00:00:00.000Z"
}, {
  "date": "2018-08-30T00:00:00.000Z"
}, {
  "date": "2018-08-29T00:00:00.000Z"
}, {
  "date": "2018-08-29T00:00:00.000Z"
}, {
  "date": "2018-08-29T00:00:00.000Z"
}, {
  "date": "2018-08-29T00:00:00.000Z"
}, {
  "date": "2018-08-29T00:00:00.000Z"
}, {
  "date": "2018-08-29T00:00:00.000Z"
}, {
  "date": "2018-08-29T00:00:00.000Z"
}, {
  "date": "2018-08-28T00:00:00.000Z"
}, {
  "date": "2018-08-28T00:00:00.000Z"
}, {
  "date": "2018-08-28T00:00:00.000Z"
}, {
  "date": "2018-08-28T00:00:00.000Z"
}, {
  "date": "2018-08-28T00:00:00.000Z"
}, {
  "date": "2018-08-22T00:00:00.000Z"
}, {
  "date": "2018-08-22T00:00:00.000Z"
}, {
  "date": "2018-08-22T00:00:00.000Z"
}, {
  "date": "2018-08-22T00:00:00.000Z"
}, {
  "date": "2018-08-21T00:00:00.000Z"
}, {
  "date": "2018-08-21T00:00:00.000Z"
}, {
  "date": "2018-08-20T00:00:00.000Z"
}, {
  "date": "2018-08-20T00:00:00.000Z"
}, {
  "date": "2018-08-20T00:00:00.000Z"
}, {
  "date": "2018-08-20T00:00:00.000Z"
}, {
  "date": "2018-08-16T00:00:00.000Z"
}, {
  "date": "2018-08-16T00:00:00.000Z"
}, {
  "date": "2018-08-16T00:00:00.000Z"
}, {
  "date": "2018-08-14T00:00:00.000Z"
}, {
  "date": "2018-08-13T00:00:00.000Z"
}, {
  "date": "2018-08-10T00:00:00.000Z"
}, {
  "date": "2018-08-10T00:00:00.000Z"
}, {
  "date": "2018-08-09T00:00:00.000Z"
}, {
  "date": "2018-08-09T00:00:00.000Z"
}, {
  "date": "2018-08-09T00:00:00.000Z"
}, {
  "date": "2018-08-08T00:00:00.000Z"
}, {
  "date": "2018-08-07T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-06T00:00:00.000Z"
}, {
  "date": "2018-08-03T00:00:00.000Z"
}, {
  "date": "2018-08-03T00:00:00.000Z"
}, {
  "date": "2018-08-03T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-02T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-08-01T00:00:00.000Z"
}, {
  "date": "2018-07-31T00:00:00.000Z"
}, {
  "date": "2018-07-31T00:00:00.000Z"
}, {
  "date": "2018-07-27T00:00:00.000Z"
}, {
  "date": "2018-07-27T00:00:00.000Z"
}, {
  "date": "2018-07-27T00:00:00.000Z"
}, {
  "date": "2018-07-27T00:00:00.000Z"
}, {
  "date": "2018-07-27T00:00:00.000Z"
}, {
  "date": "2018-07-26T00:00:00.000Z"
}, {
  "date": "2018-07-25T00:00:00.000Z"
}, {
  "date": "2018-07-25T00:00:00.000Z"
}, {
  "date": "2018-07-25T00:00:00.000Z"
}, {
  "date": "2018-07-25T00:00:00.000Z"
}, {
  "date": "2018-07-25T00:00:00.000Z"
}, {
  "date": "2018-07-25T00:00:00.000Z"
}, {
  "date": "2018-07-25T00:00:00.000Z"
}, {
  "date": "2018-07-23T00:00:00.000Z"
}, {
  "date": "2018-07-23T00:00:00.000Z"
}, {
  "date": "2018-07-23T00:00:00.000Z"
}, {
  "date": "2018-07-23T00:00:00.000Z"
}, {
  "date": "2018-07-20T00:00:00.000Z"
}, {
  "date": "2018-07-20T00:00:00.000Z"
}, {
  "date": "2018-07-20T00:00:00.000Z"
}, {
  "date": "2018-07-20T00:00:00.000Z"
}, {
  "date": "2018-07-20T00:00:00.000Z"
}, {
  "date": "2018-07-19T00:00:00.000Z"
}, {
  "date": "2018-07-19T00:00:00.000Z"
}, {
  "date": "2018-07-18T00:00:00.000Z"
}, {
  "date": "2018-07-17T00:00:00.000Z"
}, {
  "date": "2018-07-16T00:00:00.000Z"
}, {
  "date": "2018-07-16T00:00:00.000Z"
}, {
  "date": "2018-07-16T00:00:00.000Z"
}, {
  "date": "2018-07-13T00:00:00.000Z"
}, {
  "date": "2018-07-13T00:00:00.000Z"
}, {
  "date": "2018-07-12T00:00:00.000Z"
}, {
  "date": "2018-07-11T00:00:00.000Z"
}, {
  "date": "2018-07-11T00:00:00.000Z"
}, {
  "date": "2018-07-11T00:00:00.000Z"
}, {
  "date": "2018-07-11T00:00:00.000Z"
}, {
  "date": "2018-07-11T00:00:00.000Z"
}, {
  "date": "2018-07-11T00:00:00.000Z"
}, {
  "date": "2018-07-11T00:00:00.000Z"
}, {
  "date": "2018-07-09T00:00:00.000Z"
}, {
  "date": "2018-07-09T00:00:00.000Z"
}, {
  "date": "2018-07-09T00:00:00.000Z"
}, {
  "date": "2018-07-09T00:00:00.000Z"
}, {
  "date": "2018-07-09T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-06T00:00:00.000Z"
}, {
  "date": "2018-07-05T00:00:00.000Z"
}, {
  "date": "2018-07-05T00:00:00.000Z"
}, {
  "date": "2018-07-05T00:00:00.000Z"
}, {
  "date": "2018-07-04T00:00:00.000Z"
}, {
  "date": "2018-07-04T00:00:00.000Z"
}, {
  "date": "2018-07-03T00:00:00.000Z"
}, {
  "date": "2018-07-03T00:00:00.000Z"
}, {
  "date": "2018-07-03T00:00:00.000Z"
}, {
  "date": "2018-07-03T00:00:00.000Z"
}, {
  "date": "2018-07-03T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-07-02T00:00:00.000Z"
}, {
  "date": "2018-06-29T00:00:00.000Z"
}, {
  "date": "2018-06-29T00:00:00.000Z"
}, {
  "date": "2018-06-28T00:00:00.000Z"
}, {
  "date": "2018-06-28T00:00:00.000Z"
}, {
  "date": "2018-06-28T00:00:00.000Z"
}, {
  "date": "2018-06-28T00:00:00.000Z"
}, {
  "date": "2018-06-28T00:00:00.000Z"
}, {
  "date": "2018-06-28T00:00:00.000Z"
}, {
  "date": "2018-06-28T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-27T00:00:00.000Z"
}, {
  "date": "2018-06-26T00:00:00.000Z"
}, {
  "date": "2018-06-26T00:00:00.000Z"
}, {
  "date": "2018-06-26T00:00:00.000Z"
}, {
  "date": "2018-06-26T00:00:00.000Z"
}, {
  "date": "2018-06-25T00:00:00.000Z"
}, {
  "date": "2018-06-25T00:00:00.000Z"
}, {
  "date": "2018-06-25T00:00:00.000Z"
}, {
  "date": "2018-06-22T00:00:00.000Z"
}, {
  "date": "2018-06-22T00:00:00.000Z"
}, {
  "date": "2018-06-21T00:00:00.000Z"
}, {
  "date": "2018-06-21T00:00:00.000Z"
}, {
  "date": "2018-06-21T00:00:00.000Z"
}, {
  "date": "2018-06-21T00:00:00.000Z"
}, {
  "date": "2018-06-21T00:00:00.000Z"
}, {
  "date": "2018-06-21T00:00:00.000Z"
}, {
  "date": "2018-06-20T00:00:00.000Z"
}, {
  "date": "2018-06-20T00:00:00.000Z"
}, {
  "date": "2018-06-20T00:00:00.000Z"
}, {
  "date": "2018-06-20T00:00:00.000Z"
}, {
  "date": "2018-06-20T00:00:00.000Z"
}, {
  "date": "2018-06-20T00:00:00.000Z"
}, {
  "date": "2018-06-19T00:00:00.000Z"
}, {
  "date": "2018-06-18T00:00:00.000Z"
}, {
  "date": "2018-06-18T00:00:00.000Z"
}, {
  "date": "2018-06-18T00:00:00.000Z"
}, {
  "date": "2018-06-15T00:00:00.000Z"
}, {
  "date": "2018-06-15T00:00:00.000Z"
}, {
  "date": "2018-06-15T00:00:00.000Z"
}, {
  "date": "2018-06-15T00:00:00.000Z"
}, {
  "date": "2018-06-13T00:00:00.000Z"
}, {
  "date": "2018-06-13T00:00:00.000Z"
}, {
  "date": "2018-06-13T00:00:00.000Z"
}, {
  "date": "2018-06-13T00:00:00.000Z"
}, {
  "date": "2018-06-13T00:00:00.000Z"
}, {
  "date": "2018-06-13T00:00:00.000Z"
}, {
  "date": "2018-06-13T00:00:00.000Z"
}, {
  "date": "2018-06-12T00:00:00.000Z"
}, {
  "date": "2018-06-12T00:00:00.000Z"
}, {
  "date": "2018-06-11T00:00:00.000Z"
}, {
  "date": "2018-06-11T00:00:00.000Z"
}, {
  "date": "2018-06-11T00:00:00.000Z"
}, {
  "date": "2018-06-11T00:00:00.000Z"
}, {
  "date": "2018-06-11T00:00:00.000Z"
}, {
  "date": "2018-06-11T00:00:00.000Z"
}, {
  "date": "2018-06-08T00:00:00.000Z"
}, {
  "date": "2018-06-08T00:00:00.000Z"
}, {
  "date": "2018-06-08T00:00:00.000Z"
}, {
  "date": "2018-06-08T00:00:00.000Z"
}, {
  "date": "2018-06-07T00:00:00.000Z"
}, {
  "date": "2018-06-07T00:00:00.000Z"
}, {
  "date": "2018-06-06T00:00:00.000Z"
}, {
  "date": "2018-06-06T00:00:00.000Z"
}, {
  "date": "2018-06-06T00:00:00.000Z"
}, {
  "date": "2018-06-06T00:00:00.000Z"
}, {
  "date": "2018-06-06T00:00:00.000Z"
}, {
  "date": "2018-06-05T00:00:00.000Z"
}, {
  "date": "2018-06-05T00:00:00.000Z"
}, {
  "date": "2018-06-05T00:00:00.000Z"
}, {
  "date": "2018-06-05T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-04T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}, {
  "date": "2018-06-01T00:00:00.000Z"
}];

I’m getting incorrect results using the following:

console.table(R.sortBy(R.descend(({ date }) => date.getTime()), data))

The beginning of the output shows the incorrect sorting:

image

The same array is sorted correctly using lodash/fp with

sortBy(({ date }) => -date.getTime(), data),

I created a JSFiddle here (warning: I don’t know how to work with JSFiddle very well): http://jsfiddle.net/1hn704rm/9/

Is this a problem with Ramda, or am I doing something wrong?

Edit: updated JSFiddle URL

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 18 (15 by maintainers)

Most upvoted comments

Personally I have never found a use case for R.sort that isn’t better served by R.sortBy. I am sure they are there but it just seems like a more useful function. R.sort makes sense as a basic wrapper, but a basic wrapper is almost never what I want.