I want to create a function in Javascript to adapt my output for my component.
I have this input :
const t1 = [
"children1",
"children2-2",
"children3-1",
"children3-2"
]
and another array :
const t2= [
{
"value": "parent1",
"label": "parent1",
"key": "parent1",
"data": "parent1",
"children": [
{
"value": "children1",
"label": "children1",
"key": "children1",
"data": "children1"
},
{
"value": "children2",
"label": "children2",
"key": "children2",
"data": "children2"
}
],
},
{
"value": "parent2",
"label": "parent2",
"key": "parent2",
"data": "parent2",
"children": [
{
"value": "children2-1",
"label": "children2-1",
"key": "children2-1",
"data": "children2-1"
},
{
"value": "children2-2",
"label": "children2-2",
"key": "children2-2",
"data": "children2-2"
},
],
},{
"value": "parent3",
"label": "parent3",
"key": "parent3",
"data": "parent3",
"children": [
{
"value": "children3-1",
"label": "children3-1",
"key": "children3-1",
"data": "children3-1"
},
{
"value": "children3-2",
"label": "children3-2",
"key": "children3-2",
"data": "children3-2"
},
],
}
]
The goal is to create a function using js that map the second array and create an object like this :
const output = {
"children1": {
"checked": true,
"partialChecked": false
},
"parent1": {
"checked": false,
"partialChecked": true
},
"children2-2": {
"checked": true,
"partialChecked": false
},
"parent2": {
"checked": false,
"partialChecked": true
},
"children3-1" : {
"checked": true,
"partialChecked": false
},
"children3-2" : {
"checked": true,
"partialChecked": false
},
"parent3": {
"checked": false,
"partialChecked": false // false because all parent3's childrens are here (on t1 array)
},
}
I want to create an object that check if an item are in the children’s array property on t2 array, if it is I want to create an object with children’s label propery that is an object of checked : true,partialCheck false,
PartialCheck will be true ONLY if the children leaf are unique on the children array, otherwise it will be false
I’m trying with map and reduce but seems to be hard for me..
any idea how to achive this ?
map and check on every iteration