export function expandArrayObject({
arr,
childrenKey,
expandLevel,
levelKey,
noParents
}) {
const list = []
let currentLevel = 1
const _level = expandLevel || (noParents && 1)
let parentCode = null
const recursiveExpand = (arr, pCode) => {
parentCode = pCode
if (_level && currentLevel > _level) {
return
}
Array.isArray(arr) &&
arr.forEach((item) => {
currentLevel = item[levelKey] + 1
if (noParents && currentLevel < _level) {
recursiveExpand(item[childrenKey])
} else {
list.push(item)
recursiveExpand(item[childrenKey])
}
})
}
recursiveExpand(arr, parentCode)
return list
}
export function getChildrenRecursive({ arr, childrenKey, codeKey, code }) {
let result
arr.forEach((item) => {
if (item[codeKey] === code) {
result = item
} else {
getChildrenRecursive({
arr: item[childrenKey],
childrenKey,
codeKey,
code
})
}
})
return result
}