JSFiddle - React, Tailwind, and code Playground
by Viet27th
JavaScript
let originalArray = [
{
name: 'Hoa quả',
child: [
{
name: "Dưa",
parent: 'Hoa quả',
child: [
{
name: "Dưa chuột",
parent: 'Dưa'
},
{
name: "Dưa hấu",
parent: 'Dưa'
},
{
name: "Dưa bở",
parent: 'Dưa',
}
]
},
{
name: "Chanh",
parent: 'Hoa quả',
child: [
{
name: "Chanh leo",
parent: 'Chanh'
},
{
name: "Chanh đào",
parent: 'Chanh'
}
]
}
]
},
{
name: 'Đồ ăn'
}
];
let shouldBeSelected = ['Chanh leo', 'Dưa hấu'];
/** This function add a field into node which is selected */
function addSelected(key, value) {
if(shouldBeSelected.includes(value.name)) {
value.selected = true;
return value;
}
return value;
}
let afterAddSelected = JSON.parse(JSON.stringify(originalArray, addSelected));
/* console.log(afterAddSelected); */
// Flatmap nested object
let afterFlatMap = [];
function flatMap(key, value) {
let convertToInt = +key;
if(!isNaN(convertToInt)) {
afterFlatMap.push(value);
}
return value;
}
JSON.stringify(afterAddSelected, flatMap);
console.log(afterFlatMap)