如何将数组内的对象转换为嵌套数组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对象的值。优雅的解决方案。