【发布时间】:2016-09-27 07:02:14
【问题描述】:
我有一个对象数组(来自 ajax/PDO 调用),如下所示:
signincounts: [{ status: 1
count: 3
teamid: 4
},{
status: 0
count: 1
teamid: 2
},{
status: 0
count: 2
teamid: 4
}]
这些对象表示登录特定事件的用户数:
- 状态 = 1(已登录,将出席)
- 状态 = 0(已退出,不会参加)
- count = x 登录/退出人数
- teamid = y 他们所属的团队
另外,我还有以下信息:
teamcount : {
2: 5
4: 6
}
- teamid : 玩家总数
我现在想在 Javascript 中对其进行排序以显示如下所示的登录统计信息:
第 2 队:登录/退出/尚未决定
第 4 队:已登录/已退出/尚未决定
在这种情况下:
第 2 队:0 / 1 / 4
第 4 队:3 / 2 / 1
困难:
- teamid 是唯一的,但不一定是连续的
- 如果状态计数为零,则它不是返回的 JSON 的一部分
- 对象不一定按顺序排列
- 可以有两到几十个团队
- 字符串输出应按 teamid 排序,查看者的团队在顶部(还有一个附加变量 playerteamid,可用于简单检查)
我在想我需要对其进行排序,但由于未定义的零计数和非顺序的团队ID,我不确定如何处理它。 我最初的计划是使用两个空数组(signin_count、signout_count),然后循环遍历 ajax JSON 并将计数推入其中(如果是玩家团队则取消移位)。但是,我怎样才能在其中保留 teamid 参考和未定义的值(因此索引保持“平行”)?而且我假设无论如何都有一种更清洁和更好的方法(在对象数组级别本身),这允许我将它直接排序到结果字符串中。
也尝试过搜索,但没有找到任何关于双重排序同时考虑特定键/值对问题的内容。
希望能得到一些指点。
【问题讨论】:
标签: javascript arrays sorting