2016-04-07 16 views
-1

これは、私は2つのネストされたオブジェクトが含まれていTypeオブジェクトを持っている私のコード上記のコードでオブジェクトをAngularJsのオブジェクトの配列に変換するには?

"type":{"0": 
     { "label":"name", 
    "required":false, 
    "type":"String", 
    }, 
    "1": 
     { "label":"email", 
    "required":false, 
    "type":"String", 
    } 
    } 

です。今度は、そのオブジェクトをanglejを使って次の形式でオブジェクトの配列に変換したいと思います。おそらく、このような

"type":[ 
     { "label":"name", 
    "required":false, 
    "type":"String", 
    }, 
     { "label":"email", 
    "required":false, 
    "type":"String", 
    } 
    ] 
+0

http://stackoverflow.com/questions/208016/how-to-list-the-properties-of-a-javascript-object – naneri

+0

http://stackoverflow.com/questions/6857468/a-better-way -to-convert-js-object-to-array – Avinash

答えて

1

は何か - :

出力は次のようにすべきですか?

var arr = []; 
 
Object.keys(obj).forEach(function(key) 
 
{ 
 
    arr.push(obj[key]); 
 
}); 
 
obj = { type: arr };

+0

出力が{type:[...]} ' – davidkonrad

+0

であることが間違っています。正しく更新されました。 –

+0

ありがとう@Tom Mettam.Its Working –

1

あなたは、配列のインデックスとしてキーを使用することができます。

var object = { "type": { "0": { "label": "name", "required": false, "type": "String", }, "1": { "label": "email", "required": false, "type": "String", } } }, 
 
    array = []; 
 

 
Object.keys(object.type).map(function (k) { 
 
    array[+k] = object.type[k]; 
 
}); 
 
object.type = array; 
 
document.write('<pre>' + JSON.stringify(object, 0, 4) + '</pre>');

+1

あなたは出力が{type:[...]} ' – davidkonrad

+0

@ davidkonradであることを忘れました。はい、編集を参照してください。 –

0

あなたが

var arr = []; 
for(var key in obj.type){ 
    arr.push(obj.type[key]) 
} 
obj.type = arr; 
+0

出力が '{type:[...]}' – davidkonrad

+0

になるはずですが、古いオブジェクトを配列 –

0

を行うことができます

var obj = {"type":{"0": 
     { "label":"name", 
    "required":false, 
    "type":"String", 
    }, 
    "1": 
     { "label":"email", 
    "required":false, 
    "type":"String", 
    } 
    }} 

あなたはObject.keys

0を使用してこの操作を行う必要があります持っていると言います
+0

に置き換える 'obj.type = arr;'と書いてあります。出力は '{type:[...]}'でなければなりません – davidkonrad

0

はのは、あなたのオブジェクトがいたとしましょう:

var myObj = "type":{"0": 
     { "label":"name", 
    "required":false, 
    "type":"String", 
    }, 
    "1": 
     { "label":"email", 
    "required":false, 
    "type":"String", 
    } 
    }; 

あなたはLodashライブラリ使用している場合:パーティーに参加のために

myObj.type = _.map(myObj.type) 
0

を - 決してより良い後半。関数型プログラミングを使って配列を操作するのは面白いですが、受け入れられる答えは素晴らしいですが、少し微調整すれば、私のopinonのコードははるかにクリーンなコードになります。

obj = { type: Object.keys(obj).map(function(key) { return obj[key]; }) }; 

またはクリーナー以上sucinct ES6を使用して

obj = { type: Object.keys(obj).map(key => obj[key]) }; 

スーパークリーンをSTEEZ!

関連する問題