将对象的参数转换为Node中的嵌套数组
我有一个像这样的对象:
let set = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'ignored', key5: 'also ignored' }
我也有一个键的数组,意在跟踪set
对象的哪些键应该使用,以及嵌套顺序:
let keys = ['key1', 'key2', 'key3']
如何根据keys
定义的层次将set
对象转换为嵌套对象? 我所需的输出将如下所示:
{ key1: [{ name: 'value1', key2: [{ name: 'value2', key3: [{ name: 'value3' }] }] }] }
set
和keys
都可以是任意长度的。
你可以减less键,并返回每一步的内部对象。
var set = { key1: 'value1', key2: 'value2', key3: 'value3', key4: 'ignored', key5: 'also ignored' }, keys = ['key1', 'key2', 'key3'], result = {}; keys.reduce(function (o, k) { var temp = { name: set[k] }; o[k] = [temp]; return temp; }, result); console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }