假设给定一个
id = 301
,查找出
list
中
value = id
的对象,并取出对应的
label
值。
list
是一个嵌套的json数据,每一级都可能存在
children
属性,
children
中包含跟父级相同的数据结构,如果用嵌套for循环来实现,代码冗长不易阅读,而且性能也不好,所以我们选择使用递归算法来实现。
* 递归函数
* @param setValues 树型数据
* @param valueId 查找的id
function recursionGet(setValues, valueId) {
let
value
= null
for (let
index
=
0
if (setValues
[index]
.
value
=== valueId) {
value
= setValues[index].label
break
if (setValues
[index]
.children instanceof Array && setValues
[index]
.children.length > 0) {
const
text
= recursionGet(setValues[index].children, valueId)
if (text)
return text
return value
// 调用
const
data
=recursionGet(list,
301
)
console.log(data) // 输出 行政
复制代码
注意