Code: Select all
const master = [
{key:"Apprentices", label:"Apprentices", children:[
{key:"1", label:"Linda"},
{key:"2", label:"George"}
]},
{key:"Electricians", label:"Electricians", children:[
{key:"3", label:"Kate"},
{key:"4", label:"Diane"}
]}
]
var elements = Array.from(master);
Interessanterweise wenn ich eine nicht untergeordnete Eigenschaft entferne, z. B.
Code: Select all
{key:"Apprentices", label:"Apprentices", children:[
{key:"1", label:"Linda"},
{key:"2", label:"George"}
]}
In meiner Anwendung kann ich die Master-Variable leider nicht als CONST haben, aber auf jsplayground.dev kann ich das und das ist nicht der Fall einen Unterschied machen.
Hier ist mein vollständiger Code zum Entfernen eines Elements aus der children Eigenschaft, das letztendlich aus beiden Variablen entfernt wird:
Code: Select all
const master = [
{key:"Apprentices", label:"Apprentices", children:[
{key:"1", label:"Linda"},
{key:"2", label:"George"}
]},
{key:"Electricians", label:"Electricians", children:[
{key:"3", label:"Kate"},
{key:"4", label:"Diane"}
]}
]
var elements = Array.from(master);
var el = {'name': 3, 'label': 'Kate'}
console.log(elements)
console.log(master) // this is master variable not 'elements' variable
function addRemoveElement(el, addRemove, all) {
if (addRemove === 0) {
// remove
elements.forEach((item) => item.children.forEach((subItem, i) => {
if (subItem.label === el.label) {
item.children.splice(i, 1);
}
}));
}
console.log(elements)
console.log(master) // this is master variable not 'elements' variable
}
addRemoveElement(el, 0)
Code: Select all
const master = [
{key:"Apprentices", label:"Apprentices", children:[
{key:"1", label:"Linda"},
{key:"2", label:"George"}
]},
{key:"Electricians", label:"Electricians", children:[
{key:"3", label:"Kate"},
{key:"4", label:"Diane"}
]}
]
var elements = Array.from(master);
var el = {'key': 'Apprentices', 'label': 'Apprentices'}
console.log(elements)
console.log(master) // this is master variable not 'elements' variable
function addRemoveElement(el, addRemove, all) {
if (addRemove === 0) {
// remove
elements.forEach((item, i) => {
if (item.label === el.label) {
elements.splice(i, 1);
}
});
}
console.log(elements)
console.log(master) // this is master variable not 'elements' variable
}
addRemoveElement(el, 0)
1 – entfernt von beiden:
Code: Select all
(2) [Object, Object]
0: Object
1: Object
key: "Electricians"
label: "Electricians"
children: (2) [Object, Object]
(2) [Object, Object]
0: Object
1: Object
key: "Electricians"
label: "Electricians"
children: (2) [Object, Object]
(2) [Object, Object]
0: Object
1: Object
key: "Electricians"
label: "Electricians"
children: (1) [Object]
(2) [Object, Object]
0: Object
1: Object
key: "Electricians"
label: "Electricians"
children: (1) [Object]
Code: Select all
(2) [Object, Object]
0: Object
1: Object
(2) [Object, Object]
0: Object
1: Object
(1) [Object]
0: Object
(2) [Object, Object]
0: Object
1: Object
Da ich wirklich nicht weiterkomme, wäre ich für jede Anleitung sehr dankbar. Vielen Dank.