Сделаем функцию, которая будет осуществлять рекурсивный поиск:
const find = (arr, id) =>
(Array.isArray(arr) ? arr : []).reduce((found, n) =>
found || (n.id === id ? n : find(n.children, id))
, null);
И, используя её, перепишем вычисляемое свойство:
selected() {
return this.active.length
? find(this.users, this.active[0])
: null;
},
UPD. Почитал документацию - оказывается, можно всё сделать гораздо проще. Указываем для treeview параметр
return-object
- тогда в active вместо ключей будут объекты. Соответственно, искать ничего не надо, вычисляемое свойство сократится до
selected() {
return this.active[0];
},