什么是基于Javascript中的键/值对将对象拆分为对象数组的最小方法?

时间:2017-07-02 14:10:56

标签: javascript ecmascript-6

我有这个对象:

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构建一个新数组并使用key作为新对象的键创建对象,依此类推。

我现在正在这样做

var arr = [];

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

1 个答案:

答案 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)