基于SWAPI开发应用:如何统计各型号星际飞船的数量?
解决方案
SWAPI本身没有提供按型号分组统计的接口,也没有内置的型号计数器,但你可以通过以下方式实现需求:
- 拉取所有星舰数据:SWAPI的星舰接口是分页返回的,你需要遍历所有分页(检查响应中的
next字段,直到next为null时停止),收集所有星舰的完整数据。 - 本地统计型号数量:用一个键值对结构(比如JavaScript的
Map、Python的字典),以星舰的model字段为键,每获取到一艘星舰就对应累加计数。
举个简单的JavaScript实现示例:
async function countStarshipModels() { const modelCounts = new Map(); let nextUrl = 'https://swapi.dev/api/starships/'; while (nextUrl) { const response = await fetch(nextUrl); const data = await response.json(); // 统计当前页的型号 data.results.forEach(starship => { const model = starship.model; modelCounts.set(model, (modelCounts.get(model) || 0) + 1); }); nextUrl = data.next; } // 输出统计结果 modelCounts.forEach((count, model) => { console.log(`${model}: ${count}艘`); }); } countStarshipModels();
运行这段代码后,就能得到每种型号飞船的数量,比如你提到的"CR90 corvette"会被统计出2艘。
内容的提问来源于stack exchange,提问作者Fredo
相关产品推荐
相关产品推荐

