var array = [{"service_id": 14,"user_id": 56,},{"service_id": 19,"user_id": 59,},
{"service_id": 18,"user_id": 56,},{"service_id": 18,"user_id": 56}]
const groupByUserId = (array, key) => {
return array.reduce((result, currentValue) => {(
//Create a new array as key if there is not found
result[currentValue[key]] = result[currentValue[key]] || []).push(currentValue);
return result;
}, {}); // empty object after initialization
};
const grouped = groupByUserId(array, 'user_id');
console.log(grouped)
In Javascript your array should look like this:
var array = [{"service_id": 14,"user_id": 56},{"service_id": 19,"user_id": 59},
{"service_id": 18,"user_id": 56},{"service_id": 18,"user_id": 56}]
There is an assumption to be made here to identify user_id as key in the new grouped array in order to populate the user's similar service_id inside its corresponding array.
const groupByUserId = (array, key) => {
return array.reduce((result, currentValue) => {(
//Create a new array as key if there is not found
result[currentValue[key]] = result[currentValue[key]] || []).push(currentValue);
return result;
}, {}); // empty object after initialization
};
const grouped = groupByUserId(array, 'user_id');
console.log(grouped)