从JSON API响应中获取属性的唯一值的计数
Get count of unique values of properties from JSON API response
我有一个JSON API,由RubyonRails后端提供服务。其中一个端点返回一个结构类似的对象数组
{
"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
},
因为单个标题有不同类型的下载,所以"标题"在多个对象中不是唯一的。我只想统计一下唯一的头衔。
我曾想过在模型中用RubyonRails来做这件事,只在JSON响应中发送它,但这不起作用,因为它显然需要整个数组来计算它们。我在前端使用角度,所以我认为这需要在控制器中完成。我还在一个表中过滤响应,并希望显示唯一标题的更新编号。
这是一张页面截图,这是为了获得更好的视角。https://i.stack.imgur.com/DFx3L.png
非常感谢
Thomas Le
顺便说一句,这是一个我正在开发的网站,不会成为一个公共网站。它是一个数据库站点,保存了我从IndieGala
和HumbleBundle
购买的捆绑包的所有数据。我不会向公众提供这些链接。我让它比最低限度的功能更强大,因为它是我在GitHub上的一个开源项目,人们可以在本地使用它。
以防人们想知道为什么我在图片上列出了Humble Bundle的东西。
http://jsfiddle.net/hy7rasp4/
将您的数据聚合到一个由唯一键索引的数组中,然后您可以访问有关重复项和计数的信息。
var i,
title,
uniqueResults= {};
for (i in results) {
title= results[i].title;
if (!uniqueResults[title]) {
uniqueResults[title]= [];
}
uniqueResults[title].push(results[i]);
}
也许同时重组数据会更好,这样你以后也可以很容易地获得这些项目,并快速查找标题数量,例如在JavaScript中
// assuming arrayOfObjects
var objectOfTitles = {},
i;
for (i = 0; i < arrayOfObjects.length; ++i) {
if (!objectOfTitles.hasOwnProperty(arrayOfObjects[i].title)) {
objectOfTitles[arrayOfObjects[i].title] = [];
}
objectOfTitles[arrayOfObjects[i].title].push(arrayOfObjects[i]);
}
var numberOfTitles = Object.keys(objectOfTitles).length;
// then say you choose a title you want, and you can do
// objectOfTitles[chosenTitle] to get entries with just that title
相关文章:
- ng重复中的ng模型-初始化唯一作用域属性
- JavaScript-用唯一属性标识对象
- “new”关键字是在构造对象时自动设置“constructor”属性的唯一方法吗
- Ember JS如何获取具有唯一属性值的数组
- 角度:当您需要“跟踪”但您没有唯一的属性可以跟踪时,您会怎么做
- 动态删除没有唯一属性的输入字段
- 基于单个属性从数组中获取唯一对象
- 使用jQuery隐藏具有非唯一属性的元素
- Knockout.js中使用的唯一ID;对于“;单选按钮组中的标签属性
- Backbone.js在permalink集合中所有模型的唯一属性名称
- 如何检查具有唯一值的相同属性的同一类
- 页面上第二个表单所需的唯一 id 属性
- Lodash Javascript 基于唯一属性值返回元素
- 基于两个属性从 javascript 中的对象数组中获取唯一数组
- 如何使用 Wolfpack.js 测试我的 Sails.js 模型的唯一电子邮件属性
- 克隆元素,但它们必须具有“唯一属性”
- 如何通过对象的唯一属性值从数组中获取对象
- 基于每个元素预先存在的唯一属性,复制/更改多个元素的属性
- 将唯一属性关联到JavaScript中的匿名函数
- 没有数.相对于对象数组中的另一个属性的唯一属性的出现