在数组中查找匹配模板并获取对应车辆id与qty值的实现方案
你可以先将所有载具模板的id提取为Set集合实现快速校验,之后遍历玩家背包筛选符合条件的条目再提取对应字段即可,实现代码如下:
// 提取所有载具模板id存入Set,提升查询效率 const vehicleIdSet = new Set(vehicleTemplates.map(item => item[0])) // 筛选玩家背包内的载具,提取template id和qty const playerVehicles = playerInventory // 若需要额外排除标注为Non Vehicle的物品,可在条件中补充 && invItem[2] !== 'Non Vehicle' .filter(invItem => vehicleIdSet.has(invItem[0])) .map(validItem => [validItem[0], validItem[3]]) // 基础逻辑输出示例:[["230473","6"],["218034","4"],["218033","4"],["218022","4"]] // 补充排除Non Vehicle条件后输出:[["230473","6"],["218034","4"],["218033","4"]] console.log(playerVehicles)
实现逻辑说明:
- 首先提取
vehicleTemplates所有条目的下标0位(template id)存入Set,O(1)复杂度即可判断id是否属于载具 - 遍历
playerInventory过滤出id属于载具模板的条目,若有额外非载具过滤规则可在filter中补充 - 最后映射提取每个有效条目的id(下标0)和qty(下标3),得到目标数组
内容的提问来源于stack exchange,提问作者FrasierCrane86
相关产品推荐
相关产品推荐

