const data = [{ campaign: "Charles", company_ID: "1", coreURL: "http://www.test77.com", createdAt: "2017-11-06T20:45:56.931Z", owner: "K7xTxu7PRDCuhFZRC", updatedAt: "2017-09-06T20:45:56.931Z", _id: "6gsb42PSSJt7PgsDG" }, { campaign: "Charles", company_ID: "1", coreURL: "http://www.test66,com", createdAt: "2017-11-06T20:46:27.744Z", owner: "K7xTxu7PRDCuhFZRC", updatedAt: "2017-10-06T20:46:27.744Z", _id: "Md4wCnEsrQrWApnLS" }, { campaign: "Gary", company_ID: "1", coreURL: "http://www.test55,com", createdAt: "2017-11-06T20:46:27.744Z", owner: "K7xTxu7PRDCuhFZRC", updatedAt: "2017-07-06T20:46:27.744Z", _id: "5p44uiwRgqp35YXRf" }, { campaign: "Fred", company_ID: "1", coreURL: "http://www.test55,com", createdAt: "2017-11-06T20:46:27.744Z", owner: "K7xTxu7PRDCuhFZRC", updatedAt: "2017-11-15T03:46:27.744Z", _id: "5p44uiwRgqp35YXRf" }, { campaign: "Fred", company_ID: "1", coreURL: "http://www.test55,com", createdAt: "2017-11-06T20:46:27.744Z", owner: "K7xTxu7PRDCuhFZRC", updatedAt: "2017-11-03T20:46:27.744Z", _id: "5p44uiwRgqp35YXRf" }, { campaign: "Fred", company_ID: "1", coreURL: "http://www.test55,com", createdAt: "2017-11-06T20:46:27.744Z", owner: "K7xTxu7PRDCuhFZRC", updatedAt: "2017-11-13T20:46:27.744Z", _id: "5p44uiwRgqp35YXRf" }, { campaign: "Fred", company_ID: "1", coreURL: "http://www.test55,com", createdAt: "2017-11-06T20:46:27.744Z", owner: "K7xTxu7PRDCuhFZRC", updatedAt: "2017-11-09T20:46:27.744Z", _id: "5p44uiwRgqp35YXRf" }]; const groupProp = _.property('updatedAt'); let determineGroup = value => { // remove '2017-11-15' to actually use current date const now = moment('2017-11-15T10:00:03Z').startOf('day'); if (value.isSame(now, 'day')) { return 'today'; } if (value.isAfter(now.clone().subtract(7, 'days').startOf('day'))) { return 'this week'; } if (value.isSame(now, 'month')) { return 'this month'; } return value.format('MM'); }; let groupedData = _ .chain(data) .groupBy(datum => determineGroup(moment(groupProp(datum)))) .value() console.log(groupedData);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.2/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>