1

たとえば、次のオブジェクト マップがあるとします。

{
    "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" }}, 
];

配列を必要とする関数がありますが、サードパーティのプラグインから受け取ったデータはオブジェクト配列になっています。2 つの間で変換を行う簡単な方法があればいいのですが。

4

2 に答える 2

4

オブジェクトのプロパティを繰り返し処理し、それらを配列にプッシュします。

var myArray=[];
for (k in myObj) {
    if(myObj.hasOwnProperty(k)){
        var newObj = {};
        newObj[k] = myObj[k];
        myArray.push(newObj);
    }
}
于 2013-05-18T05:51:32.903 に答える
1

より簡潔に (ECMAscript 5):

function toArray (obj) {
  return Object.keys (obj).map (function (k) {
    var v = {}; v[k] = obj[k]; return v; 
  });
}
于 2013-05-18T06:15:15.177 に答える