使用jquery从字符串的一部分对字符串进行排序

时间:2017-05-20 04:47:34

标签: javascript jquery

  • 下面是一个数组列表。我希望数组中的字符串仅由航空公司排序。例如下面是我的 航空公司
  

" 0:" FZ | Fly Dubai" 1:" LH | Lufthansa" 2:" IX | Air India Express   " 3:" 6E |靛蓝

  • 预期输出应仅由arilines(Air 印度快递,飞迪拜,汉莎航空,靛蓝而​​非完整 串
  

" 0:" IX | Air India Express" 1:" FZ | Fly Dubai" 2:" LH | Lufthansa   " 3:" 6E |靛蓝

  • 我尝试过这样的事情
str = str.split('|');

str = str.sort(function (a,b) {
    if (a === '0' || b === '0')
        return (b === a) ?  0 : (a < b) ? 1 : -1;

    return (a < b) ? -1 : (a === b) ? 0 : 1;
});

2 个答案:

答案 0 :(得分:0)

let airlines = [
  "FZ|Fly Dubai", 
  "LH|Lufthansa", 
  "IX|Air India Express", 
  "6E|IndiGo",
];


let sorted = airlines.sort(function(a, b) {
  return a.split('|')[1].localeCompare(b.split('|')[1]);
});

console.log(sorted);

答案 1 :(得分:0)

不需要jQuery。

假设private

s = '"0:"FZ|Fly Dubai "1:"LH|Lufthansa "2:"IX|Air India Express "3:"6E|IndiGo'

要以初始格式恢复,您可以进行映射。即:

s.split(/\"[^\"]+\"/) // regex parses entries
.filter( // removes invalid entries
    function(a){
        return a.length > 0 && a.indexOf("|") > -1
}).sort( // sorts based on airline name
    function(a,b){
        return a.split("|")[1] > b.split("|")[1]
});