我需要在node.js
中对字符串数组进行排序。我正在使用underscore
库,对于下面的数组,它没有做它应该做的事情。
这是数组:
var stringsArray =
['2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c',
'6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6',
'980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f',
'e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7',
'e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e'];
请注意,该数组已经排序。这是排序代码,我希望在这里不做任何事情:
var sortedArray = underscore.sortBy(stringsArray, function (s) { return s.toLowerCase().charCodeAt() * -1; }).reverse();
但结果数组未排序:
[ '2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c',
'6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6',
'980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f',
'e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e',
'e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7' ]
这是一个奇怪的。在大多数情况下,我检查代码是否正常。但不是这次。有什么问题?为什么数组乱码?你怎么正确排序?
编辑:呃,看起来我的代码只对第一个字符进行排序。如果有人有一种递归检查整个字符串的排序我会很感激。
目前尚不清楚你是否真的想要对数组进行排序,或者你是否希望它进行反向排序。如果你想对数组进行排序,你可以使用普通的javascript
var stringsArray =
['2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c',
'6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6',
'980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f',
'e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7',
'e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e'];
stringsArray.sort()
["2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c",
"6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6",
"980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f",
"e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7",
"e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e"]
如果你想要一个反向排序的数组,你可以反转排序的数组
stringsArray.sort().reverse()
["e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e",
"e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7",
"980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f",
"6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6",
"2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c"]