如何将包含对象的对象转换为对象数组

Nic*_*Div 35 javascript lodash

这是我的对象

var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};
Run Code Online (Sandbox Code Playgroud)

这是我期望的输出

data = [ 
    {"0": "1"},
    {"1": "2"},
    {"2": "3"},
    {"3": "4"}
]
Run Code Online (Sandbox Code Playgroud)

Thi*_*rry 52

这适合我

var newArrayDataOfOjbect = Object.values(data)

  • 请注意,IE,Safari,Opera不支持此功能 (4认同)

Shu*_*wei 18

var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};

var myData = Object.keys(data).map(key => {
    return data[key];
})
Run Code Online (Sandbox Code Playgroud)

这适合我

  • 简化:`let myData = Object.keys(data).map(key => data [key]);` (2认同)

Mat*_*ber 7

接受的答案没有考虑到 OP 想要摆脱密钥。这仅返回对象,而不返回它们的父键。

Object.entries(ObjOfObjs).map(e => e[1]) 输出:

[ 
  {"0": "1"},
  {"1": "2"},
  {"2": "3"},
  {"3": "4"}
]
Run Code Online (Sandbox Code Playgroud)


小智 7

您可以使用Object.values()函数轻松完成此操作

var data = {
    a:{"0": "1"},
    b:{"1": "2"},
    c:{"2": "3"},
    d:{"3": "4"}
};

console.log(Object.values(data))
Run Code Online (Sandbox Code Playgroud)

  • 这是简单的转换方法 (2认同)

mag*_*ags 5

您必须为对象中的每个值指定一个名称。

一旦修复了第一个对象,就可以使用推送来完成它。

var data = {
    1: {"0": "1"},
    2: {"1": "2"},
    3 : {"2": "3"},
    4: {"3": "4"}
};

var ar = [];
for(item in data){
    ar.push(data[item]);
 }

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

http://jsfiddle.net/nhmaggiej/uobrfke6/