然后组合排序Javascript数组.获得不可预测的结果

Top*_*ato 3 javascript sorting

这就是数据如何给我,在一个对象w /由管道char分隔的元素.

首先,我需要组合两个数组,然后按字母顺序排序.以下示例是一个简化示例.但有些事情正在抛弃排序功能.结果很奇怪

carriersOne = ['St. Joseph\'s Medical Center | New York Health Care Insurance Company |    Some Other Company'];
carriersTwo = ['Advantage Care | Chicago Insurance Company | Hospital Insurance    Corporation'];

carriersOne = carriersOne[0].split('|');
carriersTwo = carriersTwo[0].split('|');

allCarriers = carriersOne.concat(carriersTwo);
allCarriers.sort();

count = allCarriers.length;

for(i=0;i<count;i++) {
alert(allCarriers[i]);
}
Run Code Online (Sandbox Code Playgroud)

你得到的是:

  Chicago Insurance Company
  Hospital Insurance Corporation
  New York Health Care Insurance Company
 Some Other Company
Advantage Care
St. Joseph's Medical Center
Run Code Online (Sandbox Code Playgroud)

wt-bleep命令是什么?注意:如果您使用单个名称或可预测的名字和姓氏,它会合并并排序.

Ja͢*_*͢ck 5

那是因为你没有剥离周围的空间,特别是领先的空间.排序已关闭,因为空格出现在任何字母之前.假设整行没有周围的空白区域,下面的代码应该修复它:

// split on pipe and surrounding white space
var splitRe = /\s*\|\s*/;

carriersOne = carriersOne[0].split(splitRe);
carriersTwo = carriersTwo[0].split(splitRe);
Run Code Online (Sandbox Code Playgroud)