在json中声明动态键(javascript,节点)

在json中声明动态键(javascript,节点),javascript,arrays,json,node.js,Javascript,Arrays,Json,Node.js,我有一个对象数组,每个对象类似于: { word: 'intentional', definition: 'done by intention or design', type: 'adjective', Synonyms: [ 'conscious', 'deliberate', 'intended', 'knowing', ] } 我正在尝试将整个数组转换为以下json格式: { "conscious": { "data": ["done by int

我有一个对象数组,每个对象类似于:

{ word: 'intentional',
  definition: 'done by intention or design',
  type: 'adjective',
  Synonyms: [  'conscious', 'deliberate', 'intended', 'knowing', ] }
我正在尝试将整个数组转换为以下
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上运行它

如何声明一个对象,然后在数组中循环以按预期填充它

var obj={word:'intential',
定义:“通过意图或设计完成”,
类型:'形容词',
同义词:[“有意识的”、“有意的”、“有意的”、“知道的”],
res=obj.Synonyms.reduce(函数s,a){
s[a]={data:[obj.definition],type:obj.type,同义词:[obj.word]};
返回s;
}, {});
控制台日志(res)
var obj={word:'intential',
定义:“通过意图或设计完成”,
类型:'形容词',
同义词:[“有意识的”、“有意的”、“有意的”、“知道的”],
res=obj.Synonyms.reduce(函数s,a){
s[a]={data:[obj.definition],type:obj.type,同义词:[obj.word]};
返回s;
}, {});

控制台日志(res)
为什么要将
的同义词从对象文本中移到它自己的语句中?我认为它不会工作,因为里面有空格,但你是对的@zerkmsw为什么要将的同义词从对象文本移到它自己的语句中?我认为它不会工作,因为里面有空间,但你是对的@虫族
var jsonObj = {};
wordArray.forEach((word) => {
    word.Synonyms.forEach((synonym) => {
        jsonObj[synonym] = {
            data: [word.definition],
            type: word.type,
            'Synonym For': [word.word]
        };
    })
})