如何在Javascript中将对象转换为数组

Aut*_*ard 1 javascript

我想在Javascript中将对象转换为较小的单属性对象数组.例如:

x={
    a: {a1:"a1", a2:"a2"},
    b: {b1:"b1", b2:"b2"},
    c: {c1:"c1", c2:"c2"}
}
Run Code Online (Sandbox Code Playgroud)

转换成

y=[
    {a: {a1:"a1", a2:"a2"}},
    {b: {b1:"b1", b2:"b2"}},
    {c: {c1:"c1", c2:"c2"}}
]
Run Code Online (Sandbox Code Playgroud)

我知道这可以用循环,但我想知道是否有更优雅的方式.如果他们有帮助,我正在使用下划线/短划线.

Nin*_*olz 5

你可以用Array#map它.

var x = { a: { a1: "a1", a2: "a2" }, b: { b1: "b1", b2: "b2" }, c: { c1: "c1", c2: "c2" } },
    y = Object.keys(x).map(function (k) {
        var o = {};
        o[k] = x[k];
        return o;
    });

console.log(y);
Run Code Online (Sandbox Code Playgroud)

ES6 @ Nenad Vracar

var x = { a: { a1: "a1", a2: "a2" }, b: { b1: "b1", b2: "b2" }, c: { c1: "c1", c2: "c2" } },
    y = Object.keys(x).map(k => ({[k]: x[k]}));

console.log(y);
Run Code Online (Sandbox Code Playgroud)