Это может потребовать некоторой корректировки в зависимости от того, как вы хотите, чтобы ваша возвращенная структура данных выглядела - «массив или объект» оставляет много опций - но должно быть достаточно, чтобы продемонстрировать один из способов сделать это:
exampleData = [
{meta_id: "6098", post_id: "2283"},
{meta_id: "6099", post_id: "2283"},
{meta_id: "6100", post_id: "2283"},
{meta_id: "6101", post_id: "2283"},
{meta_id: "6102", post_id: "2283"},
{meta_id: "6103", post_id: "2283"},
{meta_id: "6104", post_id: "2284"},
{meta_id: "6105", post_id: "2284"},
{meta_id: "6106", post_id: "2285"},
{meta_id: "6107", post_id: "2285"}
]
const reducer = (acc, cur)=>{
acc[cur.post_id] = acc[cur.post_id] || []; // start an array for this ID if we don't already have one
acc[cur.post_id].push(cur) // push the current object onto this id's array
return acc;
}
let output = exampleData.reduce(reducer, {})
console.log(output);
См. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce