在node.js中对数组进行排序 - 已排序变为未排序

问题描述 投票:0回答:1

我需要在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' ] 

这是一个奇怪的。在大多数情况下,我检查代码是否正常。但不是这次。有什么问题?为什么数组乱码?你怎么正确排序?

编辑:呃,看起来我的代码只对第一个字符进行排序。如果有人有一种递归检查整个字符串的排序我会很感激。

arrays node.js underscore.js
1个回答
0
投票

目前尚不清楚你是否真的想要对数组进行排序,或者你是否希望它进行反向排序。如果你想对数组进行排序,你可以使用普通的javascript

var stringsArray = 
 ['2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c',
  '6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6',
  '980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f',
  'e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7',
  'e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e'];

stringsArray.sort()
 ["2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c",
  "6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6",
  "980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f",
  "e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7",
  "e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e"]

如果你想要一个反向排序的数组,你可以反转排序的数组

stringsArray.sort().reverse()
 ["e5cc268ab1ddd6e650fb5bac1e8d2bee01d2e561674eec0198683757347ded3e",
  "e262181e5298faaefbfcec1f6b3e5684b50a31ed0c751f052a725a6dfafed2a7",
  "980942c275b7a407650980d6be561e6260edc55316247f20c3250ffc4d3d3c2f",
  "6f009f9cb714849dba36a302d96dcd940c803bab5aa72dc25f52c26d2a32aab6",
  "2b9ee0e611af977edbfd6bb04a56ebe05af07bdbc2daf88e5617fb872487f27c"]
© www.soinside.com 2019 - 2024. All rights reserved.