2017-02-02 16 views
2

オブジェクトから複数のオブジェクトに簡単に移動する方法はありますか?これにオブジェクトからネストされたオブジェクトを持つ配列

var obj = { 'generics.type': 'search.type', 'wood.name': 'search.name' }

var nestedObj = [ {'generics.type': 'search.type'}, {'wood.name': 'search.name'} ] 

lodashデフォルトの本質的リバース: https://lodash.com/docs/4.17.4#defaults

は時間のこの探して、そして今私はここに回しています。このことから...ありがとう

+0

'nestedObj'は配列であるはずですか? –

+0

何をしようとしていても、それが '_.defaults'の逆であることはわかりません。 –

+0

はい、それは配列であるはずでした。言及するのを忘れた。編集された質問 –

答えて

2

ロダッシュまたはアンダースコアでは、を使用できます:

var result = _.map(obj, (v,k) => ({[k]: v})); 
0
var nestedObj = { {'generics.type': 'search.type'}, {'wood.name': 'search.name'} } 

これはJavaScriptで有効なデータ構造ではありません。 JavaScriptオブジェクトは、キーと値のペアです。

複数のオブジェクトの代わりに配列を使用してください:

var multipleObjs = [ {'generics.type': 'search.type'}, {'wood.name': 'search.name'} ] 
+0

私が知った。ありがとうミア。私は、ネストされたオブジェクトを持つ配列に変換する方法(単純/簡単)を探しています。質問を編集しました... –

1

はこのお試しください:

var createDiffObjs = function(obj){ 
    var nestedObj = []; 
    for(var prop in obj) { 
       var elem = {}; 
       elem[ prop ] = obj [prop ]; 
       nestedObj.push(elem); 
       } 
    return nestedObj; 
} 

をそしてのでそれを使用します。

nestedObj = createDiffObjs(obj); 
+0

これはうまくいかないことがわかります。リテラルオブジェクトのキーとして変数を使用することはできません。 – mikeapr4

+0

@ mikeapr4ありがとうございました。 – dev8080

1

たぶん、あなたは短い何かをしたいが、私明白な解決策が唯一のものだと考えてください。

var obj = { 'generics.type': 'search.type', 'wood.name': 'search.name' }; 
 
var arr = _.map(obj, function(v, k) { var o = {}; o[k] = v; return o; }); 
 
console.log(arr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

0

まず第一に、あなたのオブジェクト構造がhttp://pro.jsonlint.com/

で有効か無効を確認してから、配列の非構造を呼び出しES2015 = ES6新しいJavaScript仕様(つまり、オブジェクト)を調査するために行きますhttps://babeljs.io/learn-es2015/ JavaScriptについての新しいアプローチについては、すべてをご覧いただけます。がんばろう!!! (あなたのオブジェクト構造が正しければ助けてくれるでしょう)

関連する問題