JavaScript 按字符串属性值对对象数组进行排序

JavaScript 按字符串属性值对对象数组进行排序

在本文中,我们将看到如何按字符串属性值对对象数组进行排序。可以使用自定义函数来对对象数组进行排序。

在这里,我们有一些常见的方法来按字符串属性值对对象数组进行排序:

  • 使用带有自定义比较函数的sort()
  • 使用自定义函数排序
  • 使用带有比较函数和toLowerCase()方法的sort()

方法1:使用带有自定义比较函数的sort()

在这种方法中,使用带有自定义比较函数的sort(),该函数利用localeCompare()对对象数组按字符串属性值进行排序。

示例: 在这个示例中,我们使用了上面解释的方法。

const GFG_object = [
    { name: "Rahul", age: 30 },
    { name: "Aman", age: 25 },
    { name: "Deepak", age: 35 }
];
 
let result = GFG_object.sort((a, b) =>
    a.name.localeCompare(b.name));
 
console.log(result);
JavaScript

输出

[
  { name: 'Aman', age: 25 },
  { name: 'Deepak', age: 35 },
  { name: 'Rahul', age: 30 }
]
JavaScript

方法2:通过用户定义的函数排序

这个函数通过属性比较对象数组。这个示例比较对象的l_name属性,如果l_name较小,则放在左边,否则放在右边。

示例: 在这个示例中,我们使用了上述解释的方法。

let GFG_Object = [
    { f_name: 'Geeks', l_name: '_2' },
    { f_name: 'for', l_name: '_1' },
    { f_name: 'GFG', l_name: '_3' }
];
 
GFG_Object.sort(compare);
 
function compare(a, b) {
    if (a.l_name < b.l_name)
        return -1;
    if (a.l_name > b.l_name)
        return 1;
    return 0;
}
 
console.log(GFG_Object);
JavaScript

输出

[
  { f_name: 'for', l_name: '_1' },
  { f_name: 'Geeks', l_name: '_2' },
  { f_name: 'GFG', l_name: '_3' }
]
JavaScript

方法3:使用sort()函数和toLowerCase()方法进行排序

在这种方法中,我们使用sort()函数和toLowerCase()方法来对一个基于字符串属性的对象数组进行大小写不敏感的排序。

示例: 在这个示例中,我们使用了上述解释的方法。

let GFG_Object = [
    { f_name: 'Geeks', l_name: '_2' },
    { f_name: 'for', l_name: '_1' },
    { f_name: 'GFG', l_name: '_3' }
];
 
GFG_Object.sort((a, b) =>
    a.f_name.toLowerCase().localeCompare(b.f_name.toLowerCase()));
 
console.log(GFG_Object);
JavaScript

输出

[
  { f_name: 'for', l_name: '_1' },
  { f_name: 'Geeks', l_name: '_2' },
  { f_name: 'GFG', l_name: '_3' }
]
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册