const addCollapsedFlag=(data, level = 1, maxLevel = 3)=>{ for (let i = 0; i < data.length; i++) { const item = data[i]; // 如果当前层级大于最大层级,给当前项添加 collapsed 标识 if (level > maxLevel) { console.log(222); item.collapsed = true; } else if (item.children) { console.log(3333); // 如果当前项有 children,继续递归遍历 children addCollapsedFlag(item.children, level + 1, maxLevel); } } } taskUnitService.statisticsSearchList(searchKeys) .then((resp) => { if (resp.length > 0) { let args = {} as any; args["name"] = item?.goodsName args["children"] = resp args["stairStatus"] = 3 addCollapsedFlag(args) console.log(args,"44444444444"); setDeviceData([args]) } else { setDeviceData(resp) } }) .finally(() => setIsLoading(false) );为什么没有打印2222 3333
时间: 2024-02-10 20:19:16 浏览: 132
vue省市区/县数据js文件(citydata.js)
根据你提供的代码,函数 `addCollapsedFlag` 中的 `console.log(222)` 和 `console.log(3333)` 只有在特定条件下才会被执行,即当前层级大于最大层级时会打印 `222`,当前项有 children 时会打印 `3333`。因此,如果这两个语句没有被执行,有可能是因为条件不满足。
在你提供的代码中,调用 `addCollapsedFlag` 的语句是 `addCollapsedFlag(args)`,该语句只传入了一个参数 `args`,没有传入第二个参数 `level` 和第三个参数 `maxLevel`,这两个参数都有默认值,分别为 1 和 3。因此,在调用 `addCollapsedFlag` 时,实际上是使用了默认值,如果你想要打印出 `222` 或 `3333`,需要根据你自己的情况传入合适的参数。
另外,你提供的代码中有一处语法错误,即 `args = {} as any;` 应该写成 `let args = {} as any;`,因为 `args` 是一个变量,需要使用 `let` 或 `const` 声明。
阅读全文