Вам нужно пройти через дерево:
const data = {
a: {
site1: {
type1: {
item1: 42,
item2: 13,
},
},
site2: {
type2: {
item3: 35,
},
},
},
};
function walk(data, out, path = []) {
Object.keys(data).forEach(key => {
const newPath = [...path, key];
const value = data[key];
if (typeof value === "object") {
walk(value, out, newPath);
} else {
out.push([newPath, value]);
// Or if you really don't need the value...
//out.push(newPath);
}
});
}
const out = [];
walk(data, out);
console.log(out);
выводит
[
[ [ 'a', 'site1', 'type1', 'item1' ], 42 ],
[ [ 'a', 'site1', 'type1', 'item2' ], 13 ],
[ [ 'a', 'site2', 'type2', 'item3' ], 35 ]
]
Изменяя эту закомментированную строку, вы можете получить исходный желаемый результат без значения.