2017-04-11 4 views
0

の宣言、各オブジェクトは同様である。Iは、オブジェクトの配列を有するJSONに動的キー(ジャバスクリプト、ノード)

{ word: 'intentional', 
    definition: 'done by intention or design', 
    type: 'adjective', 
    Synonyms: [ 'conscious', 'deliberate', 'intended', 'knowing', ] } 

Iはjsonフォーマットを以下に配列全体を変換しようとしています:

{ 
    "conscious": { 
     "data": ["done by intention or design"], 
     "type": "adjective", 
     "Synonym For": ["intentional"] 
    }, 
    "deliberate": { 
     "data": ["done by intention or design"], 
     "type": "adjective", 
     "Synonym For": ["intentional"] 
    }, 
    ... 

} 

このjson形式は、私が制御しない別のプログラムへの入力です。 node.jsで実行しています

オブジェクトを宣言して、配列をループして意図した通りに埋め込むにはどうすればよいですか?

答えて

2

var obj = { word: 'intentional', 
 
    definition: 'done by intention or design', 
 
    type: 'adjective', 
 
    Synonyms: [ 'conscious', 'deliberate', 'intended', 'knowing' ] }, 
 
    
 
    res = obj.Synonyms.reduce(function(s,a) { 
 
    s[a] = { data: [obj.definition], type: obj.type, SynonymFor: [obj.word] }; 
 
    return s; 
 
    }, {}); 
 
    
 
    console.log(res);

2
var jsonObj = {}; 
wordArray.forEach((word) => { 
    word.Synonyms.forEach((synonym) => { 
     jsonObj[synonym] = { 
      data: [word.definition], 
      type: word.type, 
      'Synonym For': [word.word] 
     }; 
    }) 
}) 
+1

なぜあなたは、独自の声明へのオブジェクトリテラルのうち、 '同義語For'を移動したのですか? – zerkms

+0

私はそれがスペースのために動作しませんtought、しかしあなたが正しいです。 @zerkms – xDreamCoding

+0

これは完全に機能します! @ありがとうございます –

関連する問題