All In One Script



PHP,HTLM,CSS,Jquery,AJAX,Javascript and etc doubts and sample codes

  • Home
  • Javascript
  • PHP
  • CSS
  • SQL/MYSQL

How to pick latest item per user from an array in Javascript?

by Blogger 9:14:00 PM array Javascript lodash sort

How to pick latest item per user from an array in Javascript?

For example, I have an array like this:
[ 
{  
  "data": "some data",
  "user": "A",
  "createdAt":"2016-12-24",
},
{
  "data": "some data2",
  "user": "B",
  "createdAt":"2016-12-24",
},
{
  "data": "some data3",
  "user": "A",
  "createdAt":"2016-12-25",
},
{
  "data": "some data4",
  "user": "A",
  "createdAt":"2016-12-23",
},
{
  "data": "some data5",
  "user": "B",
  "createdAt":"2016-12-25",
},
{
  "data": "some data6",
  "user": "C",
  "createdAt":"2016-12-24",
},
] 
I only need the latest created item per one user, so I need an array like this:
[ 
{
  "data": "some data3",
  "user": "A",
  "createdAt":"2016-12-25",
},
{
  "data": "some data5",
  "user": "B",
  "createdAt":"2016-12-25",
},
{
  "data": "some data6",
  "user": "C",
  "createdAt":"2016-12-24",
},
] 
How can I do it with underscore or lodash?


Answer :

lodash provides the orderBy and uniqBy methods.
The key is to order by user then by createdAt in descending order. Since createdAt is a Date it needs to be treated as such. Conveiniently, the orderBy method allows one to specify either the property to order by or a function to evaluate (which returns the object to order by, in this case Date).
Below's what I came up with:
var data = [{ ... }],
    sorted = _.orderBy(
      data,
      ['user', function(d) {
        return new Date(d.createdAt)
      }],
      ['asc', 'desc'] // 'desc' orders by date descending
    ),
    uniqued = _.uniqBy(sorted, 'user');
https://jsfiddle.net/rg21ddk7/1/

source: http://stackoverflow.com/questions/41310265/how-to-pick-latest-item-per-user-from-an-array#41310442








READ MORE
SHARE :

Search This Blog

Followers

  • Popular
  • Recent
  • Comments
    How to get Real IP,ISP,Country,City and etc from Visitor using PHP
    Get first key in a (possibly) associative array?
    Solved : curl_init() function not working in Ubuntu
    How to efficiently iterate over each Entry in a Map?
    Serving XHTML and self-closing tags
    Does finally always execute in Java?
    How can I make the cursor a hand when a user hovers over a list item?
    Why does this code using random strings print “hello world”?
    In Java, difference between default, public, protected, and private
    Length of a JavaScript object

Instagram

About

Popular Posts

  • How to get Real IP,ISP,Country,City and etc from Visitor using PHP
    How to get Real IP,ISP,Country,City and etc from Visitor using PHP Php Get Real visiter's IP and ISP and Country and City and Countr...
  • Get first key in a (possibly) associative array?
    Get first key in a (possibly) associative array? What's the best way to determine the first key in a possibly associative array? My...
  • Solved : curl_init() function not working in Ubuntu
    Solved : curl_init() function not working in Ubuntu  Here solved the error  Fatal error: Call to undefined function curl_init() ...
  • How to efficiently iterate over each Entry in a Map?
    How to efficiently iterate over each Entry in a Map? If I have an object implementing the  Map  interface in Java and I wish to iterate...
  • Serving XHTML and self-closing tags
    Serving XHTML and self-closing tags I am trying to follow the xhtml 1.0 strict standard as I am creating my website. Right now, validat...
  • Does finally always execute in Java?
    Does finally always execute in Java? I have a try/catch block with  return s inside it. Will the finally block be called? For example...
  • How can I make the cursor a hand when a user hovers over a list item?
    How can I make the cursor a hand when a user hovers over a list item? I've got a list, and I have a click handler for its items: ...
  • Why does this code using random strings print “hello world”?
    Why does this code using random strings print “hello world”? The following print statement would print "hello world". Could a...
  • In Java, difference between default, public, protected, and private
    In Java, difference between default, public, protected, and private In Java , are there clear rules on when to use each of access modifi...
  • Length of a JavaScript object
    Length of a JavaScript object If I have a JavaScript object, say var myObject = new Object (); myObject [ "firstname" ] ...

statcounter



statcounter



Template Created By ThemeXpose & Blogger Templates