2017-07-02 113 views
0

我有了这个对象:根据JavaScript中的键/值对将对象拆分为对象数组的最小方法是什么?

var obj = { 
    family : [{name: 'will', age: 30}, {name: 'husain', age: 12}], 
    friends : [{name: 'cody', age: 31}, {name: 'jeff', age: 11}], 
    school : [{name: 'daniel', age: 20}, {name: 'carl', age: 15}] 
} 

其转换成该

var obj = [ 
    {family : [{name: 'will', age: 30}, {name: 'husain', age: 12}]}, 
    {friends : [{name: 'cody', age: 31}, {name: 'jeff', age: 11}]}, 
    {school : [{name: 'daniel', age: 20}, {name: 'carl', age: 15}]} 
]; 

写我现在用for..in建立一个新的数组,并与主要作为新对象等重点创建对象上。

我这样做是正确的,现在

var arr = []; 

for (let key in obj) { 
    arr.push({key: obj[key]}) 
} 
+0

没有看到你很难说太多的代码。你的代码是否工作?你有一些性能问题吗? – Pointy

+0

它的工作原理,但它需要很大的空间,并不禁觉得它可能会更简单 –

回答

4

我觉得Object.keys是最好的选择:

var obj = { 
 
    family : [{name: 'will', age: 30}, {name: 'husain', age: 12}], 
 
    friends : [{name: 'cody', age: 31}, {name: 'jeff', age: 11}], 
 
    school : [{name: 'daniel', age: 20}, {name: 'carl', age: 15}] 
 
} 
 
var r = Object.keys(obj).map(x => ({[x]: obj[x]})) 
 

 
console.log(r)

相关问题