У меня есть странный (или, по крайней мере, я не начинающий программист).
У меня есть приложение javascript, которое я написал некоторое время назад для использования с Adobe AIR, которое собирает некоторые данные входа / выхода из сервера и затем отображает их на экране по имени входа.
Данные получены в хронологическом порядке; например, вот первые три строки данных с возвратом, которые я затем анализирую в своем массиве. Формат строки: отметка времени, имя, текущий статус, последнее изменение статуса
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, поэтому я не уверен, что это также играет роль в проблеме.
Когда я запускаю свое приложение AIR или мобильную версию в эмуляторе Android, мои выходные данные группируются по Имени, а затем данные для входа в систему и выхода из нее являются хронологическими внутри имени.
НО - Когда я запускаю свое приложение на своем мобильном устройстве (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 просто нет на телефоне.
Так что любые мысли или предложения будут с благодарностью.
Спасибо