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
    How to efficiently iterate over each Entry in a Map?
    In Java, difference between default, public, protected, and private
    How to check if PHP array is associative or sequential?
    Length of a JavaScript object
    How to return the date part only from a SQL Server datetime datatype
    Does finally always execute in Java?
    What is the difference between “INNER JOIN” and “OUTER JOIN”?
    Get first key in a (possibly) associative array?
    Should I use field 'datetime' or 'timestamp'?

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...
  • 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...
  • 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...
  • How to check if PHP array is associative or sequential?
    How to check if PHP array is associative or sequential? PHP treats all arrays as associative, so there aren't any built in function...
  • Length of a JavaScript object
    Length of a JavaScript object If I have a JavaScript object, say var myObject = new Object (); myObject [ "firstname" ] ...
  • How to return the date part only from a SQL Server datetime datatype
    How to return the date part only from a SQL Server datetime datatype SELECT GETDATE () Returns:  2008-09-22 15:24:13.790 I want tha...
  • 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...
  • What is the difference between “INNER JOIN” and “OUTER JOIN”?
    What is the difference between “INNER JOIN” and “OUTER JOIN”? Also how do  LEFT JOIN ,  RIGHT JOIN  and  FULL JOIN  fit in? Answ...
  • 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...
  • Should I use field 'datetime' or 'timestamp'?
    Should I use field 'datetime' or 'timestamp'? Would you suggest using a datetime or a timestamp field, and why (using M...

statcounter



statcounter



Template Created By ThemeXpose & Blogger Templates