[js] object 배열 key value 정렬 및 중복 제거 방법

안녕하세요 object 데이터에 중복되는 key값을 제거 하거 중복되는 key의 데이터는 key값을 기준으로 value를 묶고싶은데 어떻게 해야하나요
테스트 데이터와 결과는 하기와 같습니다.

출력 예시
admin
name
name2

admin1
name1

var dataObject = [{
{key: “admin”,name:“name”},
{key: “admin1”,name:“name1”},
{key: “admin”,name:“name2”} ]

var resultObject = [{
{key: “admin”,name:“name”,name:“name2”},
{key: “admin1”,name:“name1”}]

resultObject 가 잘못되었습니다. name 이라는 키 값이 중복되어 올바른 형태가 아닙니다.

var resultObject = [
    {key: “admin”,name:[ “name”, “name2”] },
    ];

와 같이 해야할것 같습니다.

const dataObject = [ {key: “admin”, name: “name”}, {key: “admin1”,name:“name1”}, {key: “admin”, name:“name2”} ];
const tempMap = dataObject.reduce( (ret, {key, name}) => {
if (ret[key]) {
ret[key].push(name);
} else {
ret[key] = [name];
}
return ret;
}, {});
const resultObject = Object.entries(tempMap).reduce( (arr, [key, name]) => {
arr.push({ key, name});
return arr;
}, []);
console.log(JSON.stringify(resultObject));

답변감사합니다.

혹시 페이징 처리된 Table에서 DB에 원하는 텍스트 검색 시 결과가 있으면 Table에 row를 다시 띄어주려면
어떻게 해야하나요?

insertRow, create, append 하면 기존 데이터에 추가되서 표시되더라구요

저는 그냥 검색 결과를 띄우고 검색창을 지우면 기존 데이터를 표시하는 방식으로 하려는데 맞나요?

말씀하시는게 정확히 잘 이해가 되지 않습니다.

table 검색기능을 구현하려고 합니다
페이징 처리된 table라 데이터를
DB에서 찾아 그결과를 Table에 띄워주려고합니다.

검색 input에 데이터를 지우면 현재 페이지 데이터가 뜨고
input에 데이터 검색후 받아온 결과를 table에 띄우는것인데

이때 어떻게 띄워야할지 모르겠습니다.