如何在javascript中将嵌套对象转换为数组?

我有一个包含多个对象的数组。 在该数组中,每个对象具有两个或更多个子对象。 我想将所有子对象聚合成一个数据数组。 如何使用javascript?

var array1 = [ { "dfgasg24":{ name:"a", id:1 }, "dfgare24":{ name:"b", id:2 } }, { "wegasg24":{ name:"ab", id:76 }, "yugasg24":{ name:"bc", id:34 }, "yugasg26":{ name:"dc", id:45 } } ] 

我想要的输出是这样的,

 var result = [ { name:"a", id:1 }, { name:"b", id:2 }, { name:"ab", id:76 }, { name:"bc", id:34 }, { name:"dc", id:45 } ]; 

您可以使用组合方法迭代数组并通过键来构建平面数组。

 var array = [{ "dfgasg24": { name: "a", id: 1 }, "dfgare24": { name: "b", id: 2 } }, { "wegasg24": { name: "ab", id: 76 }, "yugasg24": { name: "bc", id: 34 }, "yugasg26": { name: "dc", id: 45 } }], result = array.reduce(function (r, o) { Object.keys(o).forEach(function (k) { r.push(o[k]); }); return r; }, []); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

使用_.values获取对象值

 var res = _.flatMap(array1, _.values) 

此解决方案使用扩展语法 , 箭头函数 (ES6)和Object.values() (ECMAScript 2017),因此如果没有转换,它将无法在旧浏览器上运行:

 const array = [{ "dfgasg24": { name: "a", id: 1 }, "dfgare24": { name: "b", id: 2 } }, { "wegasg24": { name: "ab", id: 76 }, "yugasg24": { name: "bc", id: 34 }, "yugasg26": { name: "dc", id: 45 } }]; const result = [].concat(...array.map(Object.values)); console.log(result); 
 answer=[]; for(elem of array){ var arr=[]; for(obj of elem){ arr.push(obj); } answer.push(arr); } alert(answer); 

循环通过主arrays,并用数组替换每个元素。