JSFiddle - React, Tailwind, and code Playground

array sorting functions

by abubelinha

HTML

<div id="result" style="border:1px solid red;">

</div>

JavaScript

var arrdata = [
["id","francaise","español","xenero","notas","exemplos","tipo","nom","adv","verb","prep","conx","páxina","uso","299"],
[262,"accueillir","recibir, acoger","","","","verbo","","","","","","","","accueillir"],
[192,"affixe","afijo (prefijo, sufijo)","","","","nome","","","","","","","","affixe"],
[128,"agacer","irritar, molestar","","","","verbo","","","","","","","","agacer"],
[19,"ailleurs","otro lugar","","un autre endroit / un endroit different","","nome","","","","","","F19.p.70","position","ailleurs"],
[19.1,"ailleurs","en otro lugar","","","vivre ailleurs","adv.","","","","","","","","ailleurs"],
[207,"ainsi que","así como, junto con","","","","conj. ","","","","","","","","ainsi que"],
[57,"accueil","recepción, bienvenida","","","","nome","","","","","","p.20","","accueil"],
[50,"à","en (ciudad de nacimiento)","","","","prep. ","","","","","","","position","à"],
[155,"à droite","a la derecha","","","","adv.","","","","","","exame.A1","position","à droite"],
[154,"à gauche","a la izquierda","","","","adv.","","","","","","exame.A1","position","à gauche"]
];
var usos="position;familie;lieu;animaux;temps;saludo;preguntar".split(";");
alert("USOS: "+JSON.stringify(usos));
var headers=null;
//headers= {"id":0,"francaise":1,"español":2,"xenero":3,"notas":4,"exemplos":5,"tipo":6,"nom":7,"adv":8,"verb":9,"prep":10,"conx":11,"páxina":12,"uso":13,"299":14};
if(headers===null) {
  var nelem=0;
  headers={};
  alert(JSON.stringify(arrdata[0]));
  arrdata[0].forEach(function(elem) {
    headers[elem]=nelem++;
  });
  alert("HEADERS: "+JSON.stringify(headers));
}

var txtCol=["tipo","francaise"];

function sortarray(arrdata,headers,txtCol) { 
// podemos pasar un 4º parámetro boolHeaders, para cando o propio arrdata conteña os headers na liña 1
	return arrdata.sort(function (a, b) { // http://stackoverflow.com/a/9645447/710788
		var n=0;  
    var retorno=false;
  	while(n<txtCol.length) {
      // convertir éèêÉÈÊ --> e, çÇ --> c
        var...