Код можно доработать и оптимизировать, но это уже вы будете делать ))
Принцип понятен )
const arr = [
{name: "name", value: "John"},
{name: "last_name", value: "Snow"},
{name: "father_name", value: ""},
{name: "name", value: "Tony"},
{name: "last_name", value: "Stark"},
{name: "father_name", value: ""},
{name: "other_field", value: "damn"},
];
const newArr = [];
let obj = {};
arr.forEach(item => {
obj[item.name] = item.value;
if (item.name === 'father_name') {
newArr.push({...obj});
obj = {};
}
});