Javascript 将对象的参数转换为节点中的嵌套数组

Javascript 将对象的参数转换为节点中的嵌套数组,javascript,node.js,Javascript,Node.js,我有一个对象看起来像这样: let set = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'ignored', key5: 'also ignored' } { key1: [{ name: 'value1', key2: [{ name: 'value2', key3: [{ name: 'value3' }] }] }

我有一个对象看起来像这样:

let set = {
  key1: 'value1',
  key2: 'value2',
  key3: 'value3',
  key4: 'ignored',
  key5: 'also ignored'
}
{
  key1: [{
    name: 'value1',
    key2: [{
      name: 'value2',
      key3: [{
        name: 'value3'
      }]
    }]
  }]
}
我还有一个关键点数组,用于跟踪应该使用
集合
对象中的哪些关键点,以及嵌套顺序:

let keys = ['key1', 'key2', 'key3']
如何根据
中定义的层次结构将
对象转换为嵌套对象?我期望的输出如下所示:

let set = {
  key1: 'value1',
  key2: 'value2',
  key3: 'value3',
  key4: 'ignored',
  key5: 'also ignored'
}
{
  key1: [{
    name: 'value1',
    key2: [{
      name: 'value2',
      key3: [{
        name: 'value3'
      }]
    }]
  }]
}

设置
都可以是任意长度。

您可以减少键并为每个步骤返回内部对象

var set={key1:'value1',key2:'value2',key3:'value3',key4:'忽略',key5:'也忽略',
keys=['key1','key2','key3'],
结果={};
键。减少(功能(o,k){
var temp={name:set[k]};
o[k]=[temp];
返回温度;
},结果);
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
您可以减少键并为每个步骤返回内部对象

var set={key1:'value1',key2:'value2',key3:'value3',key4:'忽略',key5:'也忽略',
keys=['key1','key2','key3'],
结果={};
键。减少(功能(o,k){
var temp={name:set[k]};
o[k]=[temp];
返回温度;
},结果);
控制台日志(结果)

.as控制台包装{max height:100%!重要;top:0;}
工作正常!很好用!