Estoy creando esta tubería de clasificación para mi proyecto angular. Pero sale así.
"BUNNY", "Castle 111", "TOTAL 2323 Test", "Tower 2323 Test", "Vivy", "bayside"Puede usar localeCompare con {sensitivity: 'accent'} en la devolución de llamada de sort para ignorar mayúsculas y minúsculas.
const arr=["BUNNY", "Castle 111", "TOTAL 2323 Test", "Tower 2323 Test", "Vivy", "bayside"]; arr.sort((a,b)=>a.localeCompare(b, undefined, {sensitivity: 'accent'})); console.log(arr);Puede comparar las dos cadenas convirtiéndolas a minúsculas (con String.toLowerCase ) y luego usando String.localeCompare :
const arr = ["BUNNY", "Castle 111", "TOTAL 2323 Test", "Tower 2323 Test", "Vivy", "bayside" ] const sorted = arr.sort((a,b) => a.toLowerCase().localeCompare(b.toLowerCase())) console.log(sorted)Puede aprovechar el método sortBy de la biblioteca lodash para ordenar la colección unidimensional independientemente del caso.
lodash y lodash-es npm install --save lodash npm install --save-dev @types/lodash import { Pipe, PipeTransform } from "@angular/core"; import { sortBy } from "lodash-es"; @Pipe({ name: "sortBy" }) export class SortByPipe implements PipeTransform { transform<T>( value: T[], caseInsensitive = false, order = "", column: string = "" ): T[] { if (!column || column === "") { const sorted = this.sortOnCaseSensitivity(value, caseInsensitive); if (order === "asc") { return sorted; } else { return sorted.reverse(); } } if (value.length <= 1) { return value; } } sortOnCaseSensitivity<T>(value: T[], caseInsensitive: boolean): T[] { return sortBy(value, (v: T) => { if (typeof v === "string" && caseInsensitive) { return v.toLowerCase(); } return v; }); } }sortBy creada en su archivo template.html como se muestra a continuación, <ul> <li *ngFor="let word of words | sortBy: true:'asc'">{{ word }}</li> </ul>Para su referencia, agregue un enlace a una demostración de trabajo aquí