У меня есть плоский объект и массив, из которого мне нужно построить древовидный объект.Как пройти через объект и создать дерево Object
choices: ['choice1', 'choice2', 'choice3'];
items: [
{
choice1: 'taste',
choice2: 'good',
choice3: 'green-lemon'
},
{
choice1: 'taste',
choice2: 'bad',
choice3: 'green-lemon'
}
];
Массив описывает уровень, на котором каждый выбор будет входить в дерево. Я не знаю, сколько вариантов, предметов или уровней будет позже.
Как получить следующий объект:
output: {
taste: {
good: {
green-lemon:1
},
bad: {
green-lemon:1
}
}
}
Мне нужно, чтобы получить объект, описывающий, сколько элементов есть на каждом уровне. В этом примере это choice1: 1;
choice2: 2
и каждый choice3: 1
.
Любые советы о том, как построить петлю, чтобы получить этот результат?
Есть ли будет больше уровней, чем это? Будет ли этот набор данных когда-либо расширяться? –
Является ли массив 'choice' предназначен для описания уровня, на котором каждый выбор входит в дерево? Вопрос @ brainwipe также относится к правильному решению. –
@brainwipe: может быть только 2 уровня выбора, и может быть 5 уровней выбора. Массив выбора и объект элементов никогда не будут меняться во время выполнения. – Dinkheller