JavaScript Ordina array di oggetti in ordine alfabetico

Ammar Ali 12 ottobre 2023
  1. Ordina array di oggetti in ordine alfabetico utilizzando la condizione if e la funzione sort() in JavaScript
  2. Ordina array di oggetti in ordine alfabetico utilizzando la funzione localeCompare() e sort() in JavaScript
  3. Ordina array di oggetti in ordine alfabetico utilizzando la funzione Collator() e sort() in JavaScript
JavaScript Ordina array di oggetti in ordine alfabetico

Questo tutorial discuterà l’ordinamento alfabetico di un array di oggetti utilizzando la funzione sort() in JavaScript.

Ordina array di oggetti in ordine alfabetico utilizzando la condizione if e la funzione sort() in JavaScript

Se abbiamo un array di stringhe o interi, possiamo ordinarli facilmente usando la funzione sort() in JavaScript. Ad esempio, ordiniamo un array di stringhe in ordine alfabetico utilizzando la funzione sort(). Vedi il codice qui sotto.

var a = ['banana', 'apple', 'orange'];
var m = a.sort();
console.log(m);

Produzione:

Array(3)
0: "apple"
1: "banana"
2: "orange"
length: 3

Come puoi vedere, l’array è ordinato alfabeticamente e il risultato viene salvato nella variabile m. Se abbiamo un array di oggetti, dobbiamo usare alcune condizioni prima di usare la funzione sort() per ordinare l’array. Ad esempio, se abbiamo un array di oggetti contenente il nome e il cognome di alcune persone e vogliamo ordinare l’array in base al cognome delle persone. Dobbiamo passare una funzione all’interno della funzione sort(), che confronterà il cognome di ogni persona, e se il cognome della prima persona è minore del cognome della seconda persona, la funzione restituirà un valore negativo e, se è maggiore, la funzione restituirà un valore positivo; e se entrambi sono uguali, la funzione restituirà zero. Vedi il codice qui sotto.

var a = [
  {FirsName: 'Ellie', LastName: 'Williams'},
  {FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
  if (x.LastName < y.LastName) {
    return -1;
  }
  if (x.LastName > y.LastName) {
    return 1;
  }
  return 0;
}
var s = a.sort(SortArray);
console.log(s);

Produzione:

(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2

Come puoi vedere, l’array è ordinato in base al cognome. Puoi anche aumentare il numero di oggetti all’interno dell’array. Puoi anche ordinare l’array in base al nome.

Ordina array di oggetti in ordine alfabetico utilizzando la funzione localeCompare() e sort() in JavaScript

Invece di usare la condizione if, puoi anche usare la funzione localeCompare() per confrontare le stringhe. Fornisce molte altre opzioni di confronto che è possibile impostare all’interno della funzione. Ad esempio, confrontiamo l’array di oggetti precedente utilizzando la funzione localeCompare(). Vedi il codice qui sotto.

var a = [
  {FirsName: 'Ellie', LastName: 'Williams'},
  {FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
  return x.LastName.localeCompare(y.LastName);
}
var s = a.sort(SortArray);
console.log(s);

Produzione:

(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2

L’output è lo stesso del metodo precedente. Puoi anche impostare la funzione in modo che ignori eventuali segni di punteggiatura e caratteri speciali durante il confronto. Ad esempio, se abbiamo la punteggiatura prima del cognome di una persona, la funzione non ordinerà l’array. In questo caso, possiamo usare la funzione localeCompare() e impostarla per ignorare la punteggiatura durante il confronto. Vedi il codice qui sotto.

var a = [
  {FirsName: 'Ellie', LastName: ',Williams'},
  {FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
  return x.LastName.localeCompare(y.LastName, 'fr', {ignorePunctuation: true});
}
var s = a.sort(SortArray);
console.log(s);

Produzione:

(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: ",Williams"}
length: 2

L’array viene ordinato in base al cognome anche se è presente una punteggiatura. Puoi anche ignorare i caratteri speciali se sono presenti nella stringa impostando la sensibilità della funzione localeCompare() su base, come mostrato di seguito.

x.LastName.localeCompare(y.LastName, 'en', {sensitivity: 'base'});

Controlla questo link per maggiori dettagli sulla funzione localeCompare().

Ordina array di oggetti in ordine alfabetico utilizzando la funzione Collator() e sort() in JavaScript

Invece di usare la condizione if, puoi anche usare la funzione Collator() per confrontare le stringhe. Ad esempio, confrontiamo l’array di oggetti sopra utilizzando la funzione Collator(). Vedi il codice qui sotto.

const collator = new Intl.Collator('en');
var a = [
  {FirsName: 'Ellie', LastName: 'Williams'},
  {FirstName: 'Lara', LastName: 'Croft'}
];
function SortArray(x, y) {
  return collator.compare(x.LastName, y.LastName);
}
var s = a.sort(SortArray);
console.log(s);

Produzione:

(2) [{…}, {…}]
0: {FirstName: "Lara", LastName: "Croft"}
1: {FirsName: "Ellie", LastName: "Williams"}
length: 2

L’output è lo stesso dei metodi precedenti. Puoi anche cambiare l’ordinamento in decrescente cambiando la posizione dei due argomenti nella funzione collator.compare(). Puoi anche usare la funzione Collator() per confrontare stringhe di una lingua diversa; devi solo inizializzare l’oggetto collatore con quella lingua. Ad esempio, nel codice sopra, abbiamo usato en per la lingua inglese. Controlla questo link per maggiori dettagli sulla funzione Collator().

Autore: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Articolo correlato - JavaScript Array