如何优化Steam libraryfolders遍历代码并获取库数量?
Steam库路径查找代码优化与库总数获取方法
代码优化方案
原代码通过硬编码循环上限(999)遍历库索引,存在两个明显问题:一是假设库索引连续从0开始,若Steam库索引出现不连续情况会直接遗漏后续库;二是会执行大量无效遍历(实际库数量远小于999)。优化方式如下:
优化思路
直接遍历libraryfolders下的所有库对象,无需依赖索引规则,同时可根据需求提前终止循环(仅需第一个匹配结果时),减少不必要的遍历操作。
优化后代码示例
const targetGameId = '433340'; // 提取所有库对象组成数组 const libraries = Object.values(json.libraryfolders); // 遍历所有库 for (const lib of libraries) { // 先判断apps属性存在,避免报错 if (lib.apps && lib.apps.hasOwnProperty(targetGameId)) { console.log(`app found in ${lib.path}`); // 若只需第一个匹配结果,可添加break终止循环 // break; } }
获取库总数的方法
由于libraryfolders是对象而非数组,可通过获取其所有键的数量来得到库总数:
const libraryCount = Object.keys(json.libraryfolders).length; console.log(`Steam库总数:${libraryCount}`);
内容的提问来源于stack exchange,提问作者Jaros
相关产品推荐
相关产品推荐

