JSFiddle - React, Tailwind, and code Playground
JavaScript
var collection = {
32 : { id: 32, name: 'unique name', children: {} },
43: { id: 43, name: 'unique name', children: {} },
55: { id: 55, name: 'unique name', children: {
31: { id: 31, name: 'unique name', children: {} },
63: { id: 63, name: 'unique name', children: {} },
84: { id: 84, name: 'unique name', children: {
47: { id: 47, name: 'unique name', children: {} },
56: { id: 56, name: 'unique name', children: {} },
} },
} }
}
function moveElement(el, obj) {
var newEl = el;
var id = el.id;
// do removing and moving stuff here
console.log(newEl);
// remove from collection
_.omit(obj, el.id);
// add to collection in upper tree
obj[id] = newEl;
console.log(obj);
}
function deepSearch(obj, origobj, val) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
var el = obj[key];
if (_.size(el.children) > 0) {
deepSearch(el.children, origobj, val);
}
if (key == val) {
moveElement(el, origobj);
return;
}
}
}
}
deepSearch(collection, collection, 56);