我有一个由 Ruby on Rails 后端提供服务的 JSON API。其中一个端点返回一个结构如下的对象数组
{
"title_slug": "16-gaijin-games-bittrip-beat-linux-tar-gz",
"platform": "Linux",
"format": ".tar.gz",
"title": "BIT.TRIP BEAT",
"bundle": "Humble Bundle for Android 3",
"unique_games": 9
},
{
"title_slug": "17-gaijin-games-bittrip-beat-linux-deb",
"platform": "Linux",
"format": ".deb",
"title": "BIT.TRIP BEAT",
"bundle": "Humble Bundle for Android 3",
"unique_games": 9
},
由于单个标题有不同类型的下载,因此“标题”在多个对象中并不唯一。我只想计算唯一的标题。
我正在考虑在模型中的 Ruby on Rails 中执行此操作,然后仅在 JSON 响应中发送它,但这不起作用,因为显然它需要整个数组来对它们进行计数。我在前端使用 Angular ,所以我认为它需要在 Controller 中完成。我还过滤了表格中的响应,并希望显示所显示的唯一标题的更新数量。
这是页面的屏幕截图,以便获得更好的视角。 /image/DFx3L.png
非常感谢,
托马斯·乐
顺便说一句,这是我正在开发的一个网站,不会成为公共(public)网站。它是一个数据库网站,保存了我从 IndieGala
和 HumbleBundle
购买的 bundle 的所有数据。我不会向公众公开这些链接。我正在让它比最低限度的功能更强大,因为它是我在 GitHub 上的一个开源项目,人们可以在本地使用。
以防万一人们想知道为什么我在图像上列出了 Humble Bundle 的东西。
最佳答案
将数据聚合在由唯一键索引的数组中,然后您可以访问有关重复项和计数的信息。
var i,
title,
uniqueResults= {};
for (i in results) {
title= results[i].title;
if (!uniqueResults[title]) {
uniqueResults[title]= [];
}
uniqueResults[title].push(results[i]);
}
关于javascript - 从 JSON API 响应获取属性的唯一值计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25701799/