如何将数组内的对象转换为嵌套数组JavaScript?

如何将数组内的对象转换为嵌套数组JavaScript?,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一个包含对象的数组,除了最后一个元素外,每个元素都是对象,但我想将它们转换为数组数组并添加最后一个元素 更明确地说,我是如何做到这一点的: [ { 0: [1,2], 1: [6,2], name: "" }, { 0: [3,4], 1: [2,2], name: "" } ] 我想要的结果是: [ { multipolygon: [ [1,2], [6,2] ], name: ""}, { mu

我有一个包含对象的数组,除了最后一个元素外,每个元素都是对象,但我想将它们转换为数组数组并添加最后一个元素

更明确地说,我是如何做到这一点的:

[
    { 0: [1,2], 1: [6,2], name: "" },
    { 0: [3,4], 1: [2,2], name: "" }
]
我想要的结果是:

[
    { multipolygon: [ [1,2], [6,2] ], name: ""},
    { multipolygon: [ [3,4], [2,2] ], name: ""}
]
原始数组中包含的每个单个数组都将转换为这些数组的一个数组

我尝试过这样做:

const zonesArray=zones.mapel=>Object.valuesel//obj=>array const polygons=zonesArray.filterl=>el.pop//无名称数组 获取obj中包含的所有数组,但后来我意识到如何将其替换为原始对象

我已尝试修改MDN上的groupBy函数:

function groupBy(objectArray, property) {
  return objectArray.reduce(function (acc, obj) {
    let key = obj[property]
    if (!acc[key]) {
      acc[key] = []
    }
    acc[key].push(obj)
    return acc
  }, {})
}

但我似乎找不到答案

看起来您并不是在尝试按属性分组,而是在尝试分别变换数组中的每个对象-这可以通过在映射时将名称和数字属性合并在一起,然后返回新对象的形状来完成:

常数arr=[ {0:[1,2],1:[6,2],名称:}, {0:[3,4],1:[2,2],名称:} ]; const result=arr.map{name,…rest}=>{ 名称 多多边形:Object.valuesrest };
console.logresult 看起来您并不是在尝试按属性分组,而是在尝试分别变换数组中的每个对象-这可以通过在映射时将名称和数字属性合并在一起,然后返回新对象的形状来完成:

常数arr=[ {0:[1,2],1:[6,2],名称:}, {0:[3,4],1:[2,2],名称:} ]; const result=arr.map{name,…rest}=>{ 名称 多多边形:Object.valuesrest };
console.logresult;我想说的是,我已经尝试根据我的预期结果修改group by function,但没有成功。你能解释一下它是如何工作的吗?解构名称从映射到的对象中获取name属性。rest将剩余的属性(数字属性)收集到一个对象中。然后返回一个名为的新对象,并将multipolygon作为rest对象的值。优雅的解决方案。我的意思是,我试图将groupby函数修改为我预期的结果,但没有成功。你能解释一下它是如何工作的吗?解构名称从映射到的对象中获取name属性。rest将剩余的属性(数字属性)收集到一个对象中。然后返回一个新对象,其名称和多多边形作为rest对象的值。优雅的解决方案。