错误代码:
/**
* 根据最后一级节点ID获取整个树形列表中的ID,并返回数组
* @param {*} dbList 数节点列表
* @param {*} nodeId最后子节点名称
* @returns 数据结构
*/
GetDbInfo(dbList, nodeId, selectList = []) {
const _this = this
for (const item of dbList) {
if (item && nodeId) {
if (item.ChildNodes && item.ChildNodes.length > 0) {
selectList.push(item.id)
_this.GetDbInfo(item.ChildNodes, nodeId, selectList)
} else {
if (item.id === nodeId) {
selectList.push(nodeId)
return selectList
}
}
}
}
}
代码调试发现selectList已经取到值了,但是console出结果为undefined。
正确代码:
/**
* 根据最后一级节点ID获取整个树形列表中的ID,并返回数组
* @param {*} dbList 数节点列表
* @param {*} nodeId最后子节点名称
* @returns 数据结构
*/
GetDbInfo(dbList, nodeId, selectList = []) {
const _this = this
for (const item of dbList) {
if (item && nodeId) {
if (item.ChildNodes && item.ChildNodes.length > 0) {
selectList.push(item.id)
// 递归函数是函数的自身调用,所有连函数要一起返回
return _this.GetDbInfo(item.ChildNodes, nodeId, selectList)
} else {
if (item.id === nodeId) {
selectList.push(nodeId)
return selectList
}
}
}
}
}