Порядок элементов массива определяется индексом.Таким образом, даже если вы указываете значения в другом порядке, значения всегда будут храниться в порядке их индексов, а неопределенные индексы будут undefined
:
> var arr = [];
> arr[2] = 2;
> arr[0] = 0;
> arr
[0, undefined, 2]
Теперь, если вы хотите сохранить паруиндекс и значение, вам понадобится другая структура данных, возможно, массив массива, подобный этому:
var arr = [
[562, 'testuser3'],
[16, 'testuser6'],
[834, 'testuser1'],
[823, 'testuser4'],
[23, 'testuser2'],
[917, 'testuser5']
];
Это можно отсортировать с помощью этой функции сравнения:
function cmp(a, b) {
return a[1].localeCompare(b[1]);
}
arr.sort(cmp);
Результатэтот массив:
[
[834, 'testuser1'],
[23, 'testuser2'],
[562, 'testuser3'],
[823, 'testuser4'],
[917, 'testuser5'],
[16, 'testuser6']
]