如何根据属性值重组数组(语言-javascript)

原数组:

    arr[5] = [
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202211"},
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202212"},
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202210"},
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202210"},
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202211"}
]

期望得到的数组:

```javascript
arr1= [
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202211"},
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202211"}
]
arr2 = [
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202210"},
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202210"},
]
arr3 = [{
{FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "",FeeMon: "202212"},
}]

arr4 = [arr1,arr2,arr3]

```}]


let arr = [
    { FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "", FeeMon: "202211" },
    { FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "", FeeMon: "202212" },
    { FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "", FeeMon: "202210" },
    { FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "", FeeMon: "202210" },
    { FeeID: "00032", ItemName: "XXXXXX", ItemTypeName: "物业费", InstallSite: "", EndNum: "", FeeMon: "202211" }
]

const getArray = (arr) => {
    let map = new Map()
    for (let item of arr) {
        const temp = item.FeeMon
        if (!map.has(temp)) {
            map.set(temp, [item])
        } else {
            console.log('map.get(temp)', map.get(temp))
            map.set(temp, [...map.get(temp), item])
        }
    }
    return [...map.values()]
}

console.log('getArrayMax', getArray(arr))


const arr = [
  {FeeID: "00032", ItemTypeName: "物业费", FeeMon: "202211"},
  {FeeID: "00032", ItemTypeName: "物业费", FeeMon: "202212"},
  {FeeID: "00032", ItemTypeName: "物业费", FeeMon: "202210"},
  {FeeID: "00032", ItemTypeName: "物业费", FeeMon: "202210"},
  {FeeID: "00032", ItemTypeName: "物业费", FeeMon: "202211"}
]
const filterFn = (arr, key) => {
  return arr.filter(item => {
    return item.FeeMon === key
  })
}
// 获取到所有的FeeMon值
const getFeeMonList = (arr) => {
  return arr.reduce((prev, curr) => {
    if (!prev.includes(curr.FeeMon)) {
      prev.push(curr.FeeMon)
    }
    return prev
  },[])
}
const res = []
getFeeMonList(arr).map((i) => {
  res.push(filterFn(arr, i))
})
console.log(res);

img