У меня есть объект, который выглядит примерно так:
let set = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'ignored',
key5: 'also ignored'
}
У меня также есть массив ключей, предназначенный для отслеживания того, какие ключи из set
объекта должны использоваться, а также порядок вложенности:
let keys = ['key1', 'key2', 'key3']
Как преобразовать set
объект в вложенный объект на основе иерархии, определенной в keys
? Мой желаемый результат будет выглядеть так:
{
key1: [{
name: 'value1',
key2: [{
name: 'value2',
key3: [{
name: 'value3'
}]
}]
}]
}
Оба set
и keys
могут иметь произвольную длину.
Вы можете уменьшить ключи и вернуть для каждого шага внутренний объект.
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; }