javascript - 如何获取树结构每个节点的值
问题描述
嵌套数组和对象的数组,每个节点都有唯一的值,在这个数据上找一个值,如何获取每个节点上的值?</p>
const opts = [
{
value: '01',
children: [
{ value: '0198' },
{ value: '0195', children: [{ value: '09977' }] }
]
},
{
value: '02',
children: [
{ value: '01986' },
{
value: '0195',
children: [
{ value: '09978', children: [{ value: '09864' }, { value: '90876' }] }
]
}
]
}
];
const code = '90876';
// expected get an array ['02','0195','09978','90876']
解决方案
U 可以使用函数递归遍历对象结构,如下所述:
const opts = [
{
value: '01',
children: [
{ value: '0198' },
{ value: '0195', children: [{ value: '09977' }] }
]
},
{
value: '02',
children: [
{ value: '01986' },
{
value: '0195',
children: [
{ value: '09978', children: [{ value: '09864' }, { value: '90876' }] }
]
}
]
}
];
function eachRecursive(obj, cb) {
for (var k in obj) {
if (typeof obj[k] == "object" && obj[k] !== null)
eachRecursive(obj[k], cb);
else
cb(obj[k]);
}
}
let results = [];
eachRecursive(opts, val => results.push(val));
console.log(results);
但不确定你的评论是什么意思:// expected get an array ['02','0195','0997','90876']
你能解释一下你为什么这么期待吗?
推荐阅读
- loops - RN FlatList 循环变量
- powershell - Invoke-WebRequest :远程服务器返回错误:(500)内部服务器错误
- arrays - 在 bash 中同时迭代三个数组
- php - 基于独占值获取结果:mysql & laravel
- javascript - 套接字正在创建单个实例。如何从多个客户端创建此应用程序?
- android - 如何识别特定文本并将该文本替换为android中图像内的其他文本?
- c# - 使用c#将日期时间插入oracle数据库
- android - 无法使用 cmd 构建 android 项目
- python - 正则表达式不返回结果
- javascript - 星级CSS问题