【发布时间】:2015-04-05 11:37:07
【问题描述】:
我遇到了排序字母数字数组的问题。
排序模式编号在前,然后是字母
09312d27-4ddc-458e-95dd-74531f787368,
1edcdde8-702e-4703-a505-ca81b77accdd,
.....
代码:
var alphaNumericArray = ['8a337e46-7d3f-46bc-b661-579f8d25fe09',
'09312d27-4ddc-458e-95dd-74531f787368',
'e7c5fba1-ce59-439a-a560-8f558e7c0ac4',
'1edcdde8-702e-4703-a505-ca81b77accdd',
'2f66ba6c-7fd2-4d52-8ed6-b0ee6d4d0310',
'7529217d-ee80-41eb-ade7-208674924ab9',
'523f4f75-8d0a-4ad1-8f40-e8bc679956be',
'80871291-c8de-47d9-9b02-3f8444c5d64e',
'7529217d-ee80-41eb-ade7-208674924ab9'];
alphaNumericArray.sort(function(a, b) {
a = a.value;
b = b.value;
return a-b;
});
//console.log(alphaNumericArray);
//alert(alphaNumericArray);
输出未排序。它在警报弹出窗口和控制台日志中显示了相同的数组。
【问题讨论】:
-
JavaScript 中的排序默认是字符串比较排序。您不能从另一个字符串中减去一个字符串,这就是您的比较器功能不起作用的原因。
-
这也与jQuery无关。
-
[...]jQuery is a popular cross-browser JavaScript library that facilitates DOM (HTML Structure) traversal, event handling, animations, and AJAX interactions [...]您的问题与 jQuery 完全无关。但是是香草 javascript。 -
return a.localeCompare(b);,数组没有value属性? -
为什么不使用 alphaNumericArray.sort();?它排序完美?
标签: javascript arrays algorithm sorting alphanumeric