当前位置:网站首页>递归使用和多维数组对象变一维数组对象
递归使用和多维数组对象变一维数组对象
2022-07-03 03:24:00 【MISS_zhang_0110】
递归使用和多维数组对象变一维数组对象
一、递归树形数据
var obj = [
{
id: '1536225102260137986',
name: '六级6',
level: 1,
parentId: '-1',
remark: '',
children: [
{
id: '1539413104865148929',
name: '8',
level: 2,
parentId: '1536225102260137986',
remark: '',
children: [
{
id: '1539425671465500673',
name: '8.1',
level: 3,
parentId: '1539413104865148929',
remark: '',
children: null,
},
{
id: '1539435042027175937',
name: '8.2',
level: 3,
parentId: '1539413104865148929',
remark: '',
children: [
{
id: '1539435619528310786',
name: '8.2.1',
level: 4,
parentId: '1539435042027175937',
remark: '',
children: null,
},
],
},
{
id: '1539446851840868354',
name: '8.3',
level: 3,
parentId: '1539413104865148929',
remark: '',
children: null,
},
],
},
{
id: '1539434602904518658',
name: '8.1',
level: 2,
parentId: '1536225102260137986',
remark: '',
children: null,
},
{
id: '1539446726481510402',
name: '9',
level: 1,
parentId: '1536225102260137986',
remark: '',
children: null,
},
],
},
{
id: '1536236627473526785',
name: '七级7.1',
level: 1,
parentId: '-1',
remark: '',
children: [
{
id: '1536245410367074305',
name: '七级7.1',
level: 1,
parentId: '1536236627473526785',
remark: '',
children: [
{
id: '1539792426864050177',
name: '8.1',
level: 2,
parentId: '1536245410367074305',
remark: '',
children: null,
},
],
},
],
},
{
id: '1539167455968067586',
name: '日期',
level: 1,
parentId: '-1',
remark: '',
children: [
{
id: '1539167630363033602',
name: '今天',
level: 2,
parentId: '1539167455968067586',
remark: '',
children: null,
},
],
},
{
id: '1539794235812835329',
name: 'test',
level: 1,
parentId: '-1',
remark: '',
children: null,
},
{
id: '1539800261748420609',
name: '心情',
level: 1,
parentId: '-1',
remark: '',
children: [
{
id: '1539800324059000833',
name: '好',
level: 2,
parentId: '1539800261748420609',
remark: '',
children: [
{
id: '1539801422505275394',
name: '中',
level: 3,
parentId: '1539800324059000833',
remark: '',
children: null,
},
{
id: '1539805697016950786',
name: '不错',
level: 3,
parentId: '1539800324059000833',
remark: '',
children: null,
},
{
id: '1539806278271987713',
name: '还行',
level: 3,
parentId: '1539800324059000833',
remark: '',
children: null,
},
{
id: '1539808118615142402',
name: '一般般',
level: 3,
parentId: '1539800324059000833',
remark: '',
children: null,
},
{
id: '1539808207265951745',
name: 'OK',
level: 3,
parentId: '1539800324059000833',
remark: '',
children: null,
},
],
},
],
},
]
// 递归
function getJsonTree(data) {
let nowObj = data.map(item => ({
...item,
icon: '图片',
children:
item.children && item.children.length ? getJsonTree(item.children) : null,
}))
return nowObj
}
console.log(obj, getJsonTree(obj))
二、找到树图某个Id下的name (递归)
let id = 1539792426864050177 //name:8.1
let name
function getName(data) {
data.forEach(item => {
if (item.id == id) {
name = item.name
} else {
item.children && item.children.length ? getName(item.children) : null
}
})
return name
}
console.log(getName(obj), 'getName')
三、找到树图某个Id下的name (数组扁平化)
function getSortName(list) {
let res = []
res = list.concat(
...list
.map(item => {
if (item.children instanceof Array && item.children.length > 0) {
return this.getSortName(item.children)
}
return null
})
.filter(o => o instanceof Array && o.length > 0)
)
return res
}
console.log(getSortName(obj), 'getName')
链接: https://wenku.baidu.com/view/7996d7d2f51fb7360b4c2e3f5727a5e9856a2728.html
边栏推荐
- 3D drawing example
- BigVision代码
- MySql实战45讲【事务隔离】
- node 开启服务器
- Application of derivative in daily question
- [AI practice] Application xgboost Xgbregressor builds air quality prediction model (I)
- Node start server
- idea 加载不了应用市场解决办法(亲测)
- 【PyG】理解MessagePassing过程,GCN demo详解
- Spark on yarn resource optimization ideas notes
猜你喜欢

Mysql Mac版下载安装教程

Mongodb installation & Deployment

el-tree搜索方法使用

Positioning (relative positioning, absolute positioning, fixed positioning, Z-index) 2022-2-11

Latest version of NPM: the "NPM" item cannot be recognized as the name of a cmdlet, function, script file, or runnable program. Please check

UMI route interception (simple and rough)

Vs Code configure virtual environment

Small guide for rapid formation of manipulator (VIII): kinematic modeling (standard DH method)

Lvgl usage experience

The calculation of stripe, kernel and padding in CNN
随机推荐
Open Visual Studio 2010 hangs when opening a SQL file sql file
Compare float with 0
labelme标记的文件转换为yolov5格式
VS克隆时显示403错误
Learning notes of C programming [compiled by Mr. Tan Haoqiang] (Chapter III sequence programming) 04 C sentence
Tidal characteristics of the Bohai Sea and the Yellow Sea
Limit of one question per day
渤、黄海的潮汐特征
com.fasterxml.jackson.databind.exc.InvalidFormatException问题
MongoDB简介
3D drawing example
Vs 2019 installation and configuration opencv
Vs 2019 configuration tensorrt
MySQL practice 45 lecture [transaction isolation]
Yolov5 project based on QT
Node start server
Pytorch配置
Application of derivative in daily question
基于QT的tensorRT加速的yolov5
float与0比较