1
I have the following problem:
I try to sort a list of people containing the flag that identifies the person (student or teacher), the person’s code, the person’s name, the person’s status (active, inactive, blocked) and the status of participation in that room (active, inactive and blocked)all this information inside a vector I call arrayVelhoAux
. In this I want to order this vector alphabetically (A,B,C,D,E, ...).
arrayVelhoAux.FLG_IDENT_PESSO = arrayCursor[j].FLG_IDENT_PESSO;
arrayVelhoAux.COD_IDENT_PESSO = pessoa.COD_IDENT_PESSO;
arrayVelhoAux.TXT_NOMEX_PESSO = pessoa.TXT_NOMEX_PESSO;
arrayVelhoAux.FLG_STATU_PESSO = pessoa.FLG_STATU_PESSO;
arrayVelhoAux.FLG_STATU_PARTC = arrayCursor[j].FLG_STATU_PARTC;
arrayVelho.push(arrayVelhoAux);
To fill this vector I am making a loop, because there is data that I picked up in other tables. After the full fill of this vector I make a .sort()
with a view to ordering it.
arrayVelho.sort(compareArray);
In function compareArray
I simply compare which one is larger. Capitalize all letters so that all letters are compared in the same size.
function compareArray(a1,b1) {
if(a1.TXT_NOMEX_PESSO.toUpperCase() > b1.TXT_NOMEX_PESSO.toUpperCase()) return 1;
if(a1.TXT_NOMEX_PESSO.toUpperCase() < b1.TXT_NOMEX_PESSO.toUpperCase()) return -1;
return 0;
}
Apparently there is nothing wrong, and something interesting happens because, only comparing some, others are out of order. As in the image below.
I would like to know whether there is a better solution than it is, or whether it would be possible to coordinate and make this solution 100% functional.
It would be interesting to create a complete, minimal and verifiable example that displays the problem, including the full entry.
– Pablo Almeida
Where can I create this example ?
– Renan Rodrigues
Edit out the question. What I mean is that you need to display a code that generates the function input vector, so we can see exactly what’s going on. The problem may be in the input data, for example.
– Pablo Almeida
No, I actually got to resolve qse here, the problem is that function should returns 1, -1 and 0, in my returned self only if a is greater than b.
– Renan Rodrigues
The problem now is that the ordination has gone from minor to major.
– Renan Rodrigues
Probably change the order of
if
must solve.– Pablo Almeida
It is not worked, I updated the question with the new compare function
– Renan Rodrigues
Check it out now
– Renan Rodrigues