Javascript 如何将对象的对象转换为对象数组?

Javascript 如何将对象的对象转换为对象数组?,javascript,arrays,object,Javascript,Arrays,Object,我的对象看起来像{{},{},{},{},{} 我希望它看起来像这样: [{},{},{},{},{}]首先,没有对象的对象,除非你指的是属性为对象的对象。示例:{foo:{bar:'xyz'} 要将这样的对象转换为一个集合(对象数组),只需像这样循环键 let objOfObjs = { foo: { xyz: 'bar'}, bar: { abc: 'foo'} }, collection = []; Object.keys(objOfObjs).forEach(key =>

我的对象看起来像{{},{},{},{},{}

我希望它看起来像这样:


[{},{},{},{},{}]

首先,没有对象的对象,除非你指的是属性为对象的对象。示例:
{foo:{bar:'xyz'}

要将这样的对象转换为一个集合(对象数组),只需像这样循环键

let objOfObjs = {
  foo: { xyz: 'bar'},
  bar: { abc: 'foo'}
}, collection = [];

Object.keys(objOfObjs).forEach(key => collection.push(objOfObjs[key]));

console.log(collection); //[ { xyz: 'bar' }, { abc: 'foo' } ]
答复:

或者更简单

   var list = Object.values(obj);

如果您仅使用Chrome或Firefox,则可以使用:


否则,使用(并接受)基于
Object.keys()

的答案如果使用jQuery,则可以使用$.each()方法循环原始对象

否则,您可以尝试for循环:

var originalObject={
“key1”:{“obj1Key”:“obj1Value”},
“key2”:{“obj2Key”:“obj2Value”},
“key3”:{“obj3Key”:“obj3Value”}
}
var newArray=[];
for(原始对象中的var键){
push(originalObject[key]);
}

log(“新数组:+newArray”)是否要取消原始对象中内部对象的属性名称?因为原始对象不能是您描述的方式。它必须是
{foo:{},bar:{},baz:{}
。原始对象的键在哪里?
collection=object.keys(objOfObjs).map(key=>objOfObjs[key])
?@HBP True,我更喜欢我发布的方式,因为我不喜欢在变量声明中使用这种逻辑。回答很好,但我建议OP这在Safari、IE、Edge和Opera上不起作用。@GerardoFurtado好主意。我正在尝试查找有关Edge的任何信息,但我找不到任何。。。因此,为了消除疑虑,现在让我们假设,
Object.values()
不适用于:Safari、Opera和IE(IE上有什么可用的吗??)。
   var list = Object.values(obj);
var o = {a:{k:1}, b:{k:2}, c:{k:3}}
var values = Object.values(o);
// [{"k":1}, {"k":2}, {"k":3}]