Romero: Sortierung nach bestimmten Muster

Beitrag lesen

OK, eine Lösung mit einer sort Funktion:

mit einem kleinen Fehler:

var x = [

'E258_70426_000A_10s.nc',
'E258_70426_000A_10k.nc',
'E258_70426_000A_11k.nc',
'E258_70426_000A_12k.nc',
'E258_70426_000A_11b.nc',
'E258_70426_000A_22b.nc'
];

x.sort(function(a, b) {
var c1 = a.substr(18, 1);
var c2 = b.substr(18, 1);
return c1 > c2 ? 1 :
c1 < c2 ? -1 :
a > b ? 1 : // Hier war der falsche Operator
a < b ? -1 :
0;

});

alert(x.join('\n'));


>   
>   
> Struppi.  
  
soweit hat es erstmal geklappt, vielen dank dafür.  
  
aber bei einer liste die wie folgt aussieht,sortiert er alles nach den buchstaben,sprich so:  
  
ausgangsdatei:  
  
E258\_70426\_000A\_10k.nc  
E258\_70426\_000A\_10s.nc  
E258\_70426\_000A\_11b.nc  
E258\_70426\_000A\_11k.nc  
E258\_70426\_000A\_12k.nc  
E258\_70426\_000A\_22b.nc  
E258\_70427\_000B\_10s.nc  
E258\_70427\_000B\_11k.nc  
E258\_70427\_000B\_12k.nc  
E258\_70427\_000B\_20b.nc  
E258\_70428\_000A\_10k.nc  
E258\_70428\_000A\_10s.nc  
E258\_70428\_000A\_11b.nc  
E258\_70428\_000A\_11k.nc  
E258\_70428\_000A\_12k.nc  
E258\_70428\_000A\_22b.nc  
  
sortierung durch x.sort()  
  
E258\_70426\_000A\_11b.nc  
E258\_70426\_000A\_22b.nc  
E258\_70427\_000B\_20b.nc  
E258\_70428\_000A\_11b.nc  
E258\_70428\_000A\_22b.nc  
  
E258\_70426\_000A\_10k.nc  
E258\_70426\_000A\_11k.nc  
E258\_70426\_000A\_12k.nc  
E258\_70427\_000B\_11k.nc  
E258\_70427\_000B\_12k.nc  
E258\_70428\_000A\_10k.nc  
E258\_70428\_000A\_11k.nc  
E258\_70428\_000A\_12k.nc  
  
E258\_70426\_000A\_10s.nc  
E258\_70427\_000B\_10s.nc  
E258\_70428\_000A\_10s.nc  
  
  
soll-sortierung:  
  
E258\_70426\_000A\_10s.nc  
E258\_70426\_000A\_10k.nc  
E258\_70426\_000A\_11k.nc  
E258\_70426\_000A\_12k.nc  
E258\_70426\_000A\_11b.nc  
E258\_70426\_000A\_22b.nc  
  
E258\_70427\_000B\_10s.nc  
E258\_70427\_000B\_11k.nc  
E258\_70427\_000B\_12k.nc  
E258\_70427\_000B\_20b.nc  
  
E258\_70428\_000A\_10s.nc  
E258\_70428\_000A\_10k.nc  
E258\_70428\_000A\_11k.nc  
E258\_70428\_000A\_12k.nc  
E258\_70428\_000A\_11b.nc  
E258\_70428\_000A\_22b.nc  
  
lg romero