Javascript 如何格式化对象数据数组?(循环中重复值,存储在数组中)

Javascript 如何格式化对象数据数组?(循环中重复值,存储在数组中),javascript,arrays,object,Javascript,Arrays,Object,我需要处理对象数组并按预期格式化它。 此时如何格式化数组 var data = array.reduce((acc, value) => { acc[value.id] = acc[value.id] ? acc[value.id] : []; acc[value.id] ? acc[value.id].push(value.answer) : [value.answer]; return acc; }, {}) let result = Object.entr

我需要处理对象数组并按预期格式化它。 此时如何格式化数组

var data = array.reduce((acc, value) => { 
    acc[value.id] = acc[value.id] ? acc[value.id] : [];
    acc[value.id] ? acc[value.id].push(value.answer) : [value.answer];
    return acc;
}, {})

let result = Object.entries(data).map(d => ({ id: d[0], data: d[1] }) );
当前对象数据

array = [
  {
    id: "1",
    answer: "d"
  },
  {
    id: "3",
    answer: "a"
  },
  {
    id: "3",
    answer: "b"
  },
  {
    id: "3",
    answer: "c"
  },
  {
    id: "4",
    answer: "b"
  },
  {
    id: "4",
    answer: "c"
  }
]
我想用javascript格式化

formatArray = [
  {
    id: "1",
    answer: ["d"]
  },
  {
    id: "2",
    answer: []
  },
  {
    id: "3",
    answer: ["a","b","c"]
  }
  {
    id: "4",
    answer: ["b","c"]
  }
]
我需要处理对象数组并按预期格式化它。
此时如何格式化数组?

注意:这是一个对象数组-不是JSON(JSON是字符串)-提示:使用
array\reduce
method欢迎使用StackOverflow!到目前为止你试过什么吗?StackOverflow不是一个免费的代码编写服务,它希望您能够这样做。请更新您的问题,以显示您已经尝试过的内容,并显示您在某个问题中面临的具体问题。有关更多信息,请参阅,并以
var data = array.reduce((acc, value) => { 
    acc[value.id] = acc[value.id] ? acc[value.id] : [];
    acc[value.id] ? acc[value.id].push(value.answer) : [value.answer];
    return acc;
}, {})

let result = Object.entries(data).map(d => ({ id: d[0], data: d[1] }) );