我的对象看起来像{{},{},{},{}}
我希望它看起来像这样:
[{},{},{},{}]
答案 0 :(得分:2)
如果您只使用Chrome或Firefox,则可以使用Object.values()
:
var o = {a:{k:1}, b:{k:2}, c:{k:3}}
var values = Object.values(o);
// [{"k":1}, {"k":2}, {"k":3}]
否则,请根据Object.keys()
使用(并接受)答案。
答案 1 :(得分:1)
嗯,首先,没有对象的对象,除非你指的是属性是对象的对象。示例:{ 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' } ]
Repl:https://repl.it/I4MS
答案 2 :(得分:1)
var obj = { 'a' : {}, 'b': {}, 'c': {}, 'd': {} }
var list = [];
Object.keys(obj).forEach(function(key) {
list.push(obj[key]);
});
或更简单
var list = Object.values(obj);
答案 3 :(得分:0)
如果您正在使用jQuery,则可以使用$ .each()方法遍历原始对象。
否则,您可以尝试for循环:
var originalObject = {
"key1": { "obj1Key": "obj1Value" },
"key2": { "obj2Key": "obj2Value" },
"key3": { "obj3Key": "obj3Value" }
}
var newArray = [];
for (var key in originalObject) {
newArray.push(originalObject[key]);
}
console.log("New Array: " + newArray);