【发布时间】:2012-02-15 00:28:57
【问题描述】:
我有一个奇怪的东西(或者至少作为一个新手程序员,它超出了我的能力范围)。
我前段时间编写了一个用于 Adobe AIR 的 javascript 应用程序,它从服务器收集一些登录/注销数据,然后在屏幕上按登录名排序显示。
数据按时间戳时间顺序接收;例如,这里是我然后解析到我的数组中的前三行数据。行格式为时间戳、名称、当前状态、上次状态变化
Wed 1/18/2012 at 2:06 pm, Tanya, offline, Wed 1/18/2012 at 12:04 pm
Wed 1/18/2012 at 2:15 pm, Trav, offline, Wed 1/18/2012 at 2:05 pm
Wed 1/18/2012 at 2:22 pm, Trav, online, Wed 1/18/2012 at 2:15 pm
我最近修改了该应用程序,以便将其移植到移动设备上。 请注意,我正在使用 PhoneGap Build 来构建我的移动应用程序,因为我没有足够的知识来尝试自己使用 SDK 来完成,所以我不确定这是否也与问题有关。
当我在 Android 模拟器中运行我的 AIR 应用程序或移动版本时,我的输出按名称分组,然后登录/注销详细信息在名称中按时间顺序排列。
但是 - 当我在我的移动设备 (HTC Desire HD) 上运行我的应用程序时,输出仍然按名称分组,但每个名称下的数据由于某种原因不再按时间顺序排列,而且顺序似乎很随机。
代码的关键位如下;
function byName (a, b) {return a[0] == b[0] ? 0 : a[0] < b[0] ? -1 : 1}
var HistoryArr = new Array();
z = 0;
for (var i = 2; i < myArr.length - 1; i += 4) {
HistoryArr[z] = new Array(myArr[i+1], myArr[i], myArr[i + 2], myArr[i + 3]);
z++;
}
HistoryArr.sort(byName);
我不确定我是否应该以不同的方式进行排序,但让我感到困惑的是它在 AIR 中运行良好,而 android 模拟器却不能在手机上运行。
因此,任何想法或建议将不胜感激。
谢谢
【问题讨论】:
标签: javascript android arrays sorting cordova