/**
*
* @param {Array} arrs 树形数据
* @param {string} childs 树形数据子数据的属性名,常用'children'
* @param {Array} attrArr 需要提取的公共属性数组(默认是除了childs的全部属性)
* @returns
*/
extractTree(arrs, childs = 'children', attrArr) {
let attrList = []
if (!Array.isArray(arrs) && !arrs.length) return []
if (typeof childs !== 'string') return []
if (!Array.isArray(attrArr) || Array.isArray(attrArr) && !attrArr.length) {
attrList = Object.keys(arrs[0])
attrList.splice(attrList.indexOf(childs), 1)
} else {
attrList = attrArr
}
const list = []
const getObj = (arr) => {
arr.forEach(function(row) {
const obj = {}
attrList.forEach(item => {
obj[item] = row[item]
})
list.push(obj)
if (row[childs]) {
getObj(row[childs])
}
})
return list
}
return getObj(arrs)
},
js树结构扁平化
Ciwei蓝2023-11-14 11:55
相关推荐
手握风云-10 分钟前
JavaEE 进阶第四期:开启前端入门之旅(四)魔云连洲15 分钟前
React中的合成事件六月的可乐35 分钟前
【干货推荐】AI助理前端UI组件-悬浮球组件呼啦啦呼_40 分钟前
Echarts自定义地图显示区域,显示街道学校等区域,对原有区域拆分浩星1 小时前
iframe引入界面有el-date-picker日期框,点击出现闪退问题处理技术钱1 小时前
element plus 多个form校验yume_sibai1 小时前
HTML HTML基础(3)米花丶1 小时前
JSBridge安全通信:iOS/Android桥对象差异与最佳实践唐•苏凯2 小时前
ArcGIS Pro 遇到严重的应用程序错误而无法启动萌萌哒草头将军2 小时前
🚀🚀🚀 Oxc 恶意扩展警告;Rolldown 放弃 CJS 支持;Vite 发布两个漏洞补丁版本;Rslib v0.13 支持 ts-go