比如说我有一个以下的对象图:
{
"key1" : { data: "data1", extra: "none" },
"key2" : { data: "data2", extra: "none" },
"key3" : { data: "data3", extra: "none" },
"key4" : { data: "data4", extra: "none" },
};
有没有一种方便的方法将它转换为类似这样的数组:
[
{ "key1" : { data: "data1", extra: "none" }},
{ "key2" : { data: "data2", extra: "none" }},
{ "key3" : { data: "data3", extra: "none" }},
{ "key4" : { data: "data4", extra: "none" }},
];
我有一个需要数组的函数,但我从第三方插件接收的数据是在对象数组中。如果有一些简单的方法可以在两者之间完成转换,那就太好了。
答案 0 :(得分:4)
迭代对象中的属性并将它们推送到数组:
var myArray=[];
for (k in myObj) {
if(myObj.hasOwnProperty(k)){
var newObj = {};
newObj[k] = myObj[k];
myArray.push(newObj);
}
}
答案 1 :(得分:1)
更简洁(在ECMAscript 5中):
function toArray (obj) {
return Object.keys (obj).map (function (k) {
var v = {}; v[k] = obj[k]; return v;
});
}