I have an array of objects as follows:
var input_array = [{
role_name: 'Full Stack Developer',
position_id: 'b0f00e68-5adc-4209-aec2-9c4962550ab1',
email_address: '[email protected]',
application_id: '1dd45634-c283-4a96-a28a-d8a63c418329',
state: 'qualified',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Delivery Representative',
position_id: '090276f0-3fca-4b2a-85ed-697d21c405a0',
email_address: '[email protected]',
application_id: 'aa7fe2dd-b141-4c64-8350-a1d57bfaa502',
state: 'interview',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Delivery Representative',
position_id: '12345678-5adc-4209-aec2-9c4962550ab1',
email_address: '[email protected]',
application_id: '166da0ac-aaf1-400d-9a62-e37962f66653',
state: 'interview',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Delivery Representative',
position_id: '090276f0-3fca-4b2a-85ed-697d21c405a0',
email_address: '[email protected]',
application_id: 'da09a617-8e82-43c0-b1ea-725110a2c4cb',
state: 'interview',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Delivery Representative',
position_id: '12345678-5adc-4209-aec2-9c4962550ab1',
email_address: '[email protected]',
application_id: '1d55a51a-ecd1-43ea-9cf4-fed101dbebda',
state: 'offer',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Micro Space Planner',
position_id: 'fe30930f-7d9f-4953-8939-6d9924462b2b',
email_address: '[email protected]',
application_id: '293bd084-64f0-4c83-9b5d-aa304e44f066',
state: 'screening',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Delivery Representative',
position_id: '12345678-5adc-4209-aec2-9c4962550ab1',
email_address: '[email protected]',
application_id: '2adc5236-989d-49f2-ab3e-cb7e42798b77',
state: 'qualified',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Micro Space Planner',
position_id: 'fe30930f-7d9f-4953-8939-6d9924462b2b',
email_address: '[email protected]',
application_id: '293bd084-64f0-4c83-9b5d-aa304e44f066',
state: 'screening',
closing_date: '2018-10-28 06:30:00' },
{
role_name: 'Delivery Representative',
position_id: '12345678-5adc-4209-aec2-9c4962550ab1',
email_address: '[email protected]',
application_id: '2adc5236-989d-49f2-ab3e-cb7e42798b77',
state: 'qualified',
closing_date: '2018-10-28 06:30:00' }]
I want to count the object with the state as offer and interview corresponding to each and every position. I am using npm lodash library.
I have checked a few questions on SO about the group by and count using the filter but in my case position id is dynamic. So I can not set the specific value of position_id using which I can group the objects.
e.g. position_id as '12345678-5adc-4209-aec2-8b3962550ce7' contains 1 offer and 1 interview
Expected Output:
{
role_name: 'Delivery Representative',
position_id: '12345678-5adc-4209-aec2-9c4962550ab1',
email_address: '[email protected]',
offer_count: 1,
interview_count: 1
},
{
role_name: 'Micro Space Planner',
position_id: 'fe30930f-7d9f-4953-8939-6d9924462b2b',
email_address: '[email protected]',
offer_count: 0,
interview_count:0
},
{
role_name: 'Delivery Representative',
position_id: '090276f0-3fca-4b2a-85ed-697d21c405a0',
email_address: '[email protected]',
offer_count: 0,
interview_count:2
}