JSFiddle - React, Tailwind, and code Playground
by qustosh
JavaScript
//UTF8 POLISH SORT
var tab = [
["Kasia","Gwizd"],
["Zelo","Sagan"],
["Arek","Zelek"],
["Arek","Wajcha"],
["Dariusz","Wielki"],
["Ędward","qwe"],
["Ądward","qwe"]
]
var tab1 = [
["Ędward","qwe"],
["Dariusz","Wielki"]
]
var tab2 = [
["Aaaaśia"],
["Aaaaqia"],
["Aaaaćia"],
["Basia"],
["Ędyta"],
["Boryła"]
]
function arek(a, b){
//znaki diakrytyczne znajdujace sie w polskim slowniku
var dictPolZnaki = ["ą","ć","ę","ł","ń","ó","ś","ź","ż"];
//dlugosc tablicy polskich znakow diakrytycznych
var lenDictPolZnaki = dictPolZnaki.length;
//polskie + angielskie litery
var pol = {"0":0,"a":1,"ą":2,"b":3,"c":4,"ć":5,"d":6,"e":7,"ę":8,"f":9,"g":10,"h":11,"i":12,"j":13,"k":14,"l":15,"ł":16,"m":17,"n":18,"ń":19,"o":20,"ó":21,"p":22,"q":23,"r":24,"s":25,"ś":26,"t":27,"u":28,"v":29,"w":30,"x":31,"y":32,"z":33,"ź":34,"ż":35}
var a = a[0];
var b = b[0];
//zamienic oba stringi do lowerCase
a = a.toLocaleLowerCase(); //check if thats better then toLowerCase
b = b.toLocaleLowerCase(); //check if thats better then toLowerCase
var alen = a.length;
var blen = b.length;
//jezeli ktorykolwiek ze stringow zawiera polskie znaki diakrytyczne uzyj specialnego sortu
for(var i=0; i<lenDictPolZnaki; i++){
if(a.indexOf(dictPolZnaki[i]) !== -1 || b.indexOf(dictPolZnaki[i]) !== -1){
//make both strings the same length, fill empty spaces with zeros
var diff = alen - blen;
var absDiff = Math.abs(diff);
if(diff<0){
for(var j=0; j<absDiff; j++){
a += "0";
}
}else if(diff>0){
for(var j=0; j<absDiff; j++){
b += "0";
}
}else{
//do nothing strings have the same length
}
// console.log(a);
//console.log(b);
...