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



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

{ 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 格式是另一个程序的输入,我无法控制。我正在节点上运行它.js。

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

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);

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

最新更新