/**
*
* @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
相关推荐
蜡台3 分钟前
Vue 3 原生 ESM 开发实战:不用打包工具,从零搭建组件化应用我的div丢了肿么办7 分钟前
grid布局justify-items和align-items、justify-content和align-content用户298698530147 分钟前
在 React 中使用 JavaScript 将 HTML 转换为图片寻缘千鹤9 分钟前
LogicFlow流程图 PNG 导出「线上按钮置灰、无反应」故障复盘梨想橙汁13 分钟前
Vite 优化、踩坑汇总 + Webpack 迁移 Vite 实战10share16 分钟前
给 JSX 组件也来一份 Vue 式 scoped:jsx-scoped 让样式隔离不再靠自觉小聪70816 分钟前
elpis-core 领域模型驱动设计解析北城笑笑17 分钟前
Vue 104 ,AI + ECharts + Word:大模型数据可视化报告生成实战(前端导出图文并茂 Word 文档)创新技术阁24 分钟前
FastapiAdmin 实战:二次开发前的准备(环境配置与项目启动)李少兄39 分钟前
JavaScript 运算符完全指南