JavaScript ordenar el array de objetos alfabéticamente

Ammar Ali 12 octubre 2023
  1. Ordene el array de objetos alfabéticamente usando la condición if y la función sort() en JavaScript
  2. Ordene el array de objetos alfabéticamente usando la función localeCompare() y sort() en JavaScript
  3. Ordene el array de objetos alfabéticamente usando la función Collator() y sort() en JavaScript
JavaScript ordenar el array de objetos alfabéticamente

Este tutorial discutirá cómo ordenar un array de objetos alfabéticamente usando la función sort() en JavaScript.

Ordene el array de objetos alfabéticamente usando la condición if y la función sort() en JavaScript

Si tenemos un array de cadenas o números enteros, podemos ordenarlos fácilmente usando la función sort() en JavaScript. Por ejemplo, clasifiquemos un array de cadenas alfabéticamente usando la función sort(). Vea el código a continuación.

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

Producción :

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

Como puede ver, el array se ordena alfabéticamente y el resultado se guarda en la variable m. Si tenemos un array de objetos, tenemos que usar algunas condiciones antes de usar la función sort() para ordenar el array. Por ejemplo, si tenemos un array de objetos que contiene el nombre y apellido de algunas personas y queremos ordenar el array de acuerdo con el apellido de las personas. Tenemos que pasar una función dentro de la función sort(), que comparará el apellido de cada persona, y si el apellido de la primera persona es menor que el apellido de la segunda persona, la función devolverá un valor negativo, y si es mayor, la función devolverá un valor positivo; y si ambos son iguales, la función devolverá cero. Vea el código a continuación.

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);

Producción :

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

Como puede ver, el array está ordenada según el apellido. También puede aumentar la cantidad de objetos dentro del array. También puede ordenar el array según el nombre.

Ordene el array de objetos alfabéticamente usando la función localeCompare() y sort() en JavaScript

En lugar de usar la condición if, también puede usar la función localeCompare() para comparar las cadenas. Proporciona muchas otras opciones de comparación que puede establecer dentro de la función. Por ejemplo, comparemos el array de objetos anterior usando la función localeCompare(). Vea el código a continuación.

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);

Producción :

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

La salida es la misma que en el método anterior. También puede configurar la función para que ignore los signos de puntuación y los caracteres especiales durante la comparación. Por ejemplo, si tenemos puntuación antes del apellido de una persona, la función no ordenará el array. En este caso, podemos usar la función localeCompare() y configurarla para que ignore las puntuaciones durante la comparación. Vea el código a continuación.

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);

Producción :

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

el array se ordena según el apellido incluso si hay una puntuación presente. También puede ignorar los caracteres especiales si están presentes en la cadena estableciendo la sensibilidad de la función localeCompare() en base, como se muestra a continuación.

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

Consulte este enlace para obtener más detalles sobre la función localeCompare().

Ordene el array de objetos alfabéticamente usando la función Collator() y sort() en JavaScript

En lugar de utilizar la condición if, también puede utilizar la función Collator() para comparar las cadenas. Por ejemplo, comparemos el array de objetos anterior usando la función Collator(). Vea el código a continuación.

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);

Producción :

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

La salida es la misma que en los métodos anteriores. También puede cambiar el orden de clasificación a descendente cambiando el lugar de los dos argumentos en la función collator.compare(). También puede utilizar la función Collator() para comparar cadenas de un idioma diferente; solo necesita inicializar el objeto clasificador con ese idioma. Por ejemplo, en el código anterior, usamos en para el idioma inglés. Consulte este enlace para obtener más detalles sobre la función Clasificador().

Autor: 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

Artículo relacionado - JavaScript Array